blob: 0c03c1ec61722c9988f18a092e5082c89b890fff [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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530772 /* MULTIMEDIA26 */
773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
775 /* MULTIMEDIA27 */
776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530778 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530779 {{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 /* MULTIMEDIA29 */
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} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530784 /* MULTIMEDIA30 */
785 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
786 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530787 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530788 {{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 /* AFE_RX */
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_TX */
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 /* VOICE_STUB */
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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
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 /* VOICEMMODE2 */
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};
842
843static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
844 [MSM_BACKEND_DAI_MAX];
845static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
846static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
847static struct msm_pcm_stream_app_type_cfg
848 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
849
850static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
851
Florian Pfister522073c2018-09-26 15:39:15 +0200852/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530853void msm_pcm_routing_get_bedai_info(int be_idx,
854 struct msm_pcm_routing_bdai_data *be_dai)
855{
856 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
857 memcpy(be_dai, &msm_bedais[be_idx],
858 sizeof(struct msm_pcm_routing_bdai_data));
859}
860
Florian Pfister522073c2018-09-26 15:39:15 +0200861/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530862void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
863 struct msm_pcm_routing_fdai_data *fe_dai)
864{
865 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
866 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
867 sizeof(struct msm_pcm_routing_fdai_data));
868}
869
870void msm_pcm_routing_acquire_lock(void)
871{
872 mutex_lock(&routing_lock);
873}
874
875void msm_pcm_routing_release_lock(void)
876{
877 mutex_unlock(&routing_lock);
878}
879
880static int msm_pcm_routing_get_app_type_idx(int app_type)
881{
882 int idx;
883
884 pr_debug("%s: app_type: %d\n", __func__, app_type);
885 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
886 if (app_type_cfg[idx].app_type == app_type)
887 return idx;
888 }
889 pr_info("%s: App type not available, fallback to default\n", __func__);
890 return 0;
891}
892
893static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
894{
895 int idx;
896
897 pr_debug("%s: app_type: %d\n", __func__, app_type);
898 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
899 if (lsm_app_type_cfg[idx].app_type == app_type)
900 return idx;
901 }
902 pr_debug("%s: App type not available, fallback to default\n", __func__);
903 return 0;
904}
905
Surendar Karkae7507512018-07-20 15:46:54 +0530906static int get_port_id(int port_id)
907{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530908 int ret = port_id;
909
910 if (port_id == AFE_LOOPBACK_TX) {
911 /*
912 * Return afe_loopback_tx_port_id if set. Else return
913 * msm_ec_ref_port_id to maintain backward compatibility.
914 */
915 if (afe_loopback_tx_port_id != -1)
916 ret = afe_loopback_tx_port_id;
917 else
918 ret = msm_ec_ref_port_id;
919 }
920
921 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530922}
923
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530924static bool is_mm_lsm_fe_id(int fe_id)
925{
926 bool rc = true;
927
928 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
929 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
930 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
931 rc = false;
932 }
933 return rc;
934}
935
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700936/*
937 * msm_pcm_routing_send_chmix_cfg:
938 * send the channel mixer command to mix the input channels
939 * into output channels.
940 *
941 * @fe_id: front end id
942 * @ip_channel_cnt: input channel count
943 * @op_channel_cnt: output channel count
944 * @ch_wght_coeff: channel weight co-efficients for channel mixing
945 * @session_type: indicates session is of type TX or RX
946 * @stream_type: indicates either Audio or Listen stream type
947 */
948int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
949 int op_channel_cnt, int *ch_wght_coeff,
950 int session_type, int stream_type)
951{
952
953 int rc = 0, idx = 0;
954 int be_index = 0, port_id;
955 unsigned int session_id = 0;
956
957 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
958 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
959 stream_type);
960 if (!is_mm_lsm_fe_id(fe_id)) {
961 /* bad ID assigned in machine driver */
962 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
963 return -EINVAL;
964 }
965
966 if (ch_wght_coeff == NULL) {
967 pr_err("%s: Null channel weightage coefficients passed\n",
968 __func__);
969 return -EINVAL;
970 }
971
972 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
973 port_id = msm_bedais[be_index].port_id;
974 if (!msm_bedais[be_index].active ||
975 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
976 continue;
977
978 session_id = fe_dai_map[fe_id][session_type].strm_id;
979
980 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
981 unsigned long copp =
982 session_copp_map[fe_id][session_type][be_index];
983 if (!test_bit(idx, &copp))
984 continue;
985 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
986 session_id, ip_channel_cnt,
987 op_channel_cnt, ch_wght_coeff,
988 session_type, stream_type);
989 if (rc < 0)
990 pr_err("%s: err setting channel mix config\n",
991 __func__);
992 }
993 }
994
995 return 0;
996}
997EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
998
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530999/**
1000 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
1001 * setting before use case start.
1002 *
1003 * @fe_id: frontend idx
1004 * @type: stream direction type
1005 * @params: parameters of channel mixer setting
1006 *
1007 * Return 0 for success
1008 */
1009int msm_pcm_routing_set_channel_mixer_cfg(
1010 int fe_id, int type,
1011 struct msm_pcm_channel_mixer *params)
1012{
1013 int i, j = 0;
1014
1015 channel_mixer_v2[fe_id][type].enable = params->enable;
1016 channel_mixer_v2[fe_id][type].rule = params->rule;
1017 channel_mixer_v2[fe_id][type].input_channel =
1018 params->input_channel;
1019 channel_mixer_v2[fe_id][type].output_channel =
1020 params->output_channel;
1021 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1022
1023 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1024 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1025 params->in_ch_map[i];
1026 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1027 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1028 params->out_ch_map[i];
1029
1030 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1031 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1032 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1033 params->channel_weight[i][j];
1034
1035 channel_mixer_v2[fe_id][type].override_in_ch_map =
1036 params->override_in_ch_map;
1037 channel_mixer_v2[fe_id][type].override_out_ch_map =
1038 params->override_out_ch_map;
1039
1040 return 0;
1041}
1042EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1043
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301044int msm_pcm_routing_reg_stream_app_type_cfg(
1045 int fedai_id, int session_type, int be_id,
1046 struct msm_pcm_stream_app_type_cfg *cfg_data)
1047{
1048 int ret = 0;
1049
1050 if (cfg_data == NULL) {
1051 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1052 ret = -EINVAL;
1053 goto done;
1054 }
1055
1056 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1057 __func__, fedai_id, session_type, be_id,
1058 cfg_data->app_type, cfg_data->acdb_dev_id,
1059 cfg_data->sample_rate);
1060
1061 if (!is_mm_lsm_fe_id(fedai_id)) {
1062 pr_err("%s: Invalid machine driver ID %d\n",
1063 __func__, fedai_id);
1064 ret = -EINVAL;
1065 goto done;
1066 }
1067 if (session_type != SESSION_TYPE_RX &&
1068 session_type != SESSION_TYPE_TX) {
1069 pr_err("%s: Invalid session type %d\n",
1070 __func__, session_type);
1071 ret = -EINVAL;
1072 goto done;
1073 }
1074 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1075 pr_err("%s: Received out of bounds be_id %d\n",
1076 __func__, be_id);
1077 ret = -EINVAL;
1078 goto done;
1079 }
1080
1081 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1082
1083 /*
1084 * Store the BE ID of the configuration information set as the latest so
1085 * the get mixer control knows what to return.
1086 */
1087 last_be_id_configured[fedai_id][session_type] = be_id;
1088
1089done:
1090 return ret;
1091}
1092EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1093
1094/**
1095 * msm_pcm_routing_get_stream_app_type_cfg
1096 *
1097 * Receives fedai_id, session_type, be_id, and populates app_type,
1098 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1099 * -EINVAL and does not alter passed values.
1100 *
1101 * fedai_id - Passed value, front end ID for which app type config is wanted
1102 * session_type - Passed value, session type for which app type config
1103 * is wanted
1104 * be_id - Returned value, back end device id the app type config data is for
1105 * cfg_data - Returned value, configuration data used by app type config
1106 */
1107int msm_pcm_routing_get_stream_app_type_cfg(
1108 int fedai_id, int session_type, int *bedai_id,
1109 struct msm_pcm_stream_app_type_cfg *cfg_data)
1110{
1111 int be_id;
1112 int ret = 0;
1113
1114 if (bedai_id == NULL) {
1115 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1116 ret = -EINVAL;
1117 goto done;
1118 } else if (cfg_data == NULL) {
1119 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1120 ret = -EINVAL;
1121 goto done;
1122 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1123 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1124 ret = -EINVAL;
1125 goto done;
1126 } else if (session_type != SESSION_TYPE_RX &&
1127 session_type != SESSION_TYPE_TX) {
1128 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1129 ret = -EINVAL;
1130 goto done;
1131 }
1132
1133 be_id = last_be_id_configured[fedai_id][session_type];
1134 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1135 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1136 ret = -EINVAL;
1137 goto done;
1138 }
1139
1140 *bedai_id = be_id;
1141 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1142 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1143 __func__, fedai_id, session_type, *bedai_id,
1144 cfg_data->app_type, cfg_data->acdb_dev_id,
1145 cfg_data->sample_rate);
1146done:
1147 return ret;
1148}
1149EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1150
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301151static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1152 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301153{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301154 struct list_head *ptr, *next;
1155 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301156 pr_debug("%s\n", __func__);
1157
1158 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301159 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301160
1161 cal_block = list_entry(ptr,
1162 struct cal_block_data, list);
1163
Vikram Panduranga770b8382017-09-27 12:17:36 -07001164 if (cal_utils_is_cal_stale(cal_block))
1165 continue;
1166
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301167 if (((struct audio_cal_info_adm_top *)cal_block
1168 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301169 return cal_block;
1170 }
1171 }
1172 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1173 return NULL;
1174}
1175
1176static struct cal_block_data *msm_routing_find_topology(int path,
1177 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301178 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001179 int cal_index,
1180 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301181{
1182 struct list_head *ptr, *next;
1183 struct cal_block_data *cal_block = NULL;
1184 struct audio_cal_info_adm_top *cal_info;
1185
1186 pr_debug("%s\n", __func__);
1187
1188 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301189 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301190
1191 cal_block = list_entry(ptr,
1192 struct cal_block_data, list);
1193
Vikram Panduranga770b8382017-09-27 12:17:36 -07001194 if (cal_utils_is_cal_stale(cal_block))
1195 continue;
1196
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301197 cal_info = (struct audio_cal_info_adm_top *)
1198 cal_block->cal_info;
1199 if ((cal_info->path == path) &&
1200 (cal_info->app_type == app_type) &&
1201 (cal_info->acdb_id == acdb_id)) {
1202 return cal_block;
1203 }
1204 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001205 pr_debug("%s: Can't find topology for path %d, app %d, "
1206 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1207 exact ? "fail" : "defaulting to search by path");
1208 return exact ? NULL : msm_routing_find_topology_by_path(path,
1209 cal_index);
1210}
1211
1212static int msm_routing_find_topology_on_index(int session_type, int app_type,
1213 int acdb_dev_id, int idx,
1214 bool exact)
1215{
1216 int topology = -EINVAL;
1217 struct cal_block_data *cal_block = NULL;
1218
1219 mutex_lock(&cal_data[idx]->lock);
1220 cal_block = msm_routing_find_topology(session_type, app_type,
1221 acdb_dev_id, idx, exact);
1222 if (cal_block != NULL) {
1223 topology = ((struct audio_cal_info_adm_top *)
1224 cal_block->cal_info)->topology;
1225 }
1226 mutex_unlock(&cal_data[idx]->lock);
1227 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301228}
1229
Vikram Panduranga770b8382017-09-27 12:17:36 -07001230/*
1231 * Retrieving cal_block will mark cal_block as stale.
1232 * Hence it cannot be reused or resent unless the flag
1233 * is reset.
1234 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301235static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1236 int be_id)
1237{
1238 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301239 int app_type = 0, acdb_dev_id = 0;
1240
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301241 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1242 __func__, fedai_id, session_type, be_id);
1243
1244 if (cal_data == NULL)
1245 goto done;
1246
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301247 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1248 acdb_dev_id =
1249 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1250
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001251 pr_debug("%s: Check for exact LSM topology\n", __func__);
1252 topology = msm_routing_find_topology_on_index(session_type,
1253 app_type,
1254 acdb_dev_id,
1255 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1256 true /*exact*/);
1257 if (topology < 0) {
1258 pr_debug("%s: Check for compatible topology\n", __func__);
1259 topology = msm_routing_find_topology_on_index(session_type,
1260 app_type,
1261 acdb_dev_id,
1262 ADM_TOPOLOGY_CAL_TYPE_IDX,
1263 false /*exact*/);
1264 if (topology < 0)
1265 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301266 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301267done:
1268 pr_debug("%s: Using topology %d\n", __func__, topology);
1269 return topology;
1270}
1271
1272static uint8_t is_be_dai_extproc(int be_dai)
1273{
1274 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1275 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1276 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1277 return 1;
1278 else
1279 return 0;
1280}
1281
1282static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1283 int path_type, int perf_mode,
1284 uint32_t passthr_mode)
1285{
1286 int i, port_type, j, num_copps = 0;
1287 struct route_payload payload;
1288
1289 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1290 path_type == ADM_PATH_COMPRESSED_RX) ?
1291 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1292
1293 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1294 if (!is_be_dai_extproc(i) &&
1295 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1296 (msm_bedais[i].active) &&
1297 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301298 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301299 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1300 unsigned long copp =
1301 session_copp_map[fedai_id][sess_type][i];
1302 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301303 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301304 payload.copp_idx[num_copps] = j;
1305 payload.app_type[num_copps] =
1306 fe_dai_app_type_cfg
1307 [fedai_id][sess_type][i]
1308 .app_type;
1309 payload.acdb_dev_id[num_copps] =
1310 fe_dai_app_type_cfg
1311 [fedai_id][sess_type][i]
1312 .acdb_dev_id;
1313 payload.sample_rate[num_copps] =
1314 fe_dai_app_type_cfg
1315 [fedai_id][sess_type][i]
1316 .sample_rate;
1317 num_copps++;
1318 }
1319 }
1320 }
1321 }
1322
1323 if (num_copps) {
1324 payload.num_copps = num_copps;
1325 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1326 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1327 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1328 }
1329}
1330
1331void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1332 int stream_type)
1333{
1334 int i, session_type, path_type, port_type;
1335 u32 mode = 0;
1336
1337 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1338 /* bad ID assigned in machine driver */
1339 pr_err("%s: bad MM ID\n", __func__);
1340 return;
1341 }
1342
1343 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1344 session_type = SESSION_TYPE_RX;
1345 path_type = ADM_PATH_PLAYBACK;
1346 port_type = MSM_AFE_PORT_TYPE_RX;
1347 } else {
1348 session_type = SESSION_TYPE_TX;
1349 path_type = ADM_PATH_LIVE_REC;
1350 port_type = MSM_AFE_PORT_TYPE_TX;
1351 }
1352
1353 mutex_lock(&routing_lock);
1354
1355 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1356 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1357 if (!is_be_dai_extproc(i) &&
1358 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1359 (msm_bedais[i].active) &&
1360 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1361 mode = afe_get_port_type(msm_bedais[i].port_id);
1362 adm_connect_afe_port(mode, dspst_id,
1363 msm_bedais[i].port_id);
1364 break;
1365 }
1366 }
1367 mutex_unlock(&routing_lock);
1368}
1369
1370static bool route_check_fe_id_adm_support(int fe_id)
1371{
1372 bool rc = true;
1373
1374 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1375 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1376 /* fe id is listen while port is set to afe */
1377 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1378 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1379 __func__, fe_id, lsm_port_index);
1380 rc = false;
1381 }
1382 }
1383
1384 return rc;
1385}
1386
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001387/*
1388 * msm_pcm_routing_get_pp_ch_cnt:
1389 * Read the processed channel count
1390 *
1391 * @fe_id: Front end ID
1392 * @session_type: Inidicates RX or TX session type
1393 */
1394int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1395{
1396 struct msm_pcm_stream_app_type_cfg cfg_data;
1397 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301398 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001399
1400 memset(&cfg_data, 0, sizeof(cfg_data));
1401
1402 if (!is_mm_lsm_fe_id(fe_id)) {
1403 pr_err("%s: bad MM ID\n", __func__);
1404 return -EINVAL;
1405 }
1406
1407 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1408 &be_id, &cfg_data);
1409 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301410 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001411 return ret;
1412 }
1413
1414 app_type = cfg_data.app_type;
1415 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1416 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1417}
1418EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1419
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301420int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1421 int dspst_id, int stream_type,
1422 uint32_t passthr_mode)
1423{
1424 int i, j, session_type, path_type, port_type, topology;
1425 int num_copps = 0;
1426 struct route_payload payload;
1427 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301428 u16 bit_width = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301429 bool is_lsm;
1430
1431 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1432 __func__, fe_id, perf_mode, dspst_id,
1433 stream_type, passthr_mode);
1434 if (!is_mm_lsm_fe_id(fe_id)) {
1435 /* bad ID assigned in machine driver */
1436 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1437 return -EINVAL;
1438 }
1439
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301440 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1441 session_type = SESSION_TYPE_RX;
1442 if (passthr_mode != LEGACY_PCM)
1443 path_type = ADM_PATH_COMPRESSED_RX;
1444 else
1445 path_type = ADM_PATH_PLAYBACK;
1446 port_type = MSM_AFE_PORT_TYPE_RX;
1447 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1448 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301449 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301450 path_type = ADM_PATH_COMPRESSED_TX;
1451 else
1452 path_type = ADM_PATH_LIVE_REC;
1453 port_type = MSM_AFE_PORT_TYPE_TX;
1454 } else {
1455 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1456 return -EINVAL;
1457 }
1458
1459 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1460 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1461 mutex_lock(&routing_lock);
1462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301463 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301464 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1465 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1466 if (!route_check_fe_id_adm_support(fe_id)) {
1467 /* ignore adm open if not supported for fe_id */
1468 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1469 mutex_unlock(&routing_lock);
1470 return 0;
1471 }
1472
1473 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301474 /* re-enable EQ if active */
1475 msm_qti_pp_send_eq_values(fe_id);
1476 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301477 if (!is_be_dai_extproc(i) &&
1478 (afe_get_port_type(msm_bedais[i].port_id) ==
1479 port_type) &&
1480 (msm_bedais[i].active) &&
1481 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1482 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301483 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301484
1485 /*
1486 * check if ADM needs to be configured with different
1487 * channel mapping than backend
1488 */
1489 if (!msm_bedais[i].adm_override_ch)
1490 channels = msm_bedais[i].channel;
1491 else
1492 channels = msm_bedais[i].adm_override_ch;
1493
1494 bit_width = msm_routing_get_bit_width(
1495 msm_bedais[i].format);
1496 app_type =
1497 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1498 if (app_type && is_lsm) {
1499 app_type_idx =
1500 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1501 sample_rate =
1502 fe_dai_app_type_cfg[fe_id][session_type][i]
1503 .sample_rate;
1504 bit_width =
1505 lsm_app_type_cfg[app_type_idx].bit_width;
1506 } else if (app_type) {
1507 app_type_idx =
1508 msm_pcm_routing_get_app_type_idx(
1509 app_type);
1510 sample_rate =
1511 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1512 bit_width =
1513 app_type_cfg[app_type_idx].bit_width;
1514 } else {
1515 sample_rate = msm_bedais[i].sample_rate;
1516 }
1517 acdb_dev_id =
1518 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1519 topology = msm_routing_get_adm_topology(fe_id,
1520 session_type,
1521 i);
1522 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1523 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001524 COMPRESSED_PASSTHROUGH_GEN)
1525 || (passthr_mode ==
1526 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301527 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1528 pr_debug("%s: Before adm open topology %d\n", __func__,
1529 topology);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301530
1531 be_bit_width = msm_routing_get_bit_width(
1532 msm_bedais[i].format);
1533 if (hifi_filter_enabled && (msm_bedais[i].sample_rate
1534 == 384000 || msm_bedais[i].sample_rate ==
1535 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301536 bit_width = msm_routing_get_bit_width(
1537 SNDRV_PCM_FORMAT_S32_LE);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301538
1539 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301540 adm_open(port_id, path_type, sample_rate,
1541 channels, topology, perf_mode,
1542 bit_width, app_type, acdb_dev_id,
1543 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301544 if ((copp_idx < 0) ||
1545 (copp_idx >= MAX_COPPS_PER_PORT)) {
1546 pr_err("%s:adm open failed coppid:%d\n",
1547 __func__, copp_idx);
1548 mutex_unlock(&routing_lock);
1549 return -EINVAL;
1550 }
1551 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1552 __func__, fe_id, session_type, i);
1553 set_bit(copp_idx,
1554 &session_copp_map[fe_id][session_type][i]);
1555
1556 if (msm_is_resample_needed(
1557 sample_rate,
1558 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301559 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301560 msm_bedais[i].sample_rate);
1561
1562 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1563 unsigned long copp =
1564 session_copp_map[fe_id][session_type][i];
1565 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301566 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301567 payload.copp_idx[num_copps] = j;
1568 payload.app_type[num_copps] =
1569 fe_dai_app_type_cfg
1570 [fe_id][session_type][i]
1571 .app_type;
1572 payload.acdb_dev_id[num_copps] =
1573 fe_dai_app_type_cfg
1574 [fe_id][session_type][i]
1575 .acdb_dev_id;
1576 payload.sample_rate[num_copps] =
1577 fe_dai_app_type_cfg
1578 [fe_id][session_type][i]
1579 .sample_rate;
1580 num_copps++;
1581 }
1582 }
1583 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001584 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301585 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301586 msm_routing_send_device_pp_params(port_id,
1587 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301588 }
1589 }
1590 if (num_copps) {
1591 payload.num_copps = num_copps;
1592 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1593 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1594 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1595 }
1596 mutex_unlock(&routing_lock);
1597 return 0;
1598}
1599
1600static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1601{
1602 u32 session_id;
1603
1604 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301605 case MSM_FRONTEND_DAI_QCHAT:
1606 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1607 break;
1608 case MSM_FRONTEND_DAI_VOIP:
1609 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1610 break;
1611 case MSM_FRONTEND_DAI_VOICEMMODE1:
1612 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1613 break;
1614 case MSM_FRONTEND_DAI_VOICEMMODE2:
1615 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1616 break;
1617 default:
1618 session_id = 0;
1619 }
1620
1621 pr_debug("%s session_id 0x%x", __func__, session_id);
1622 return session_id;
1623}
1624
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301625static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1626 int dspst_id, int stream_type)
1627{
1628 int copp_idx = 0;
1629 int sess_type = 0;
1630 int j = 0, be_id = 0;
1631 int ret = 0;
1632
1633 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1634 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1635 return 0;
1636 }
1637
1638 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1639 sess_type = SESSION_TYPE_RX;
1640 else
1641 sess_type = SESSION_TYPE_TX;
1642
1643 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1644 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1645 __func__, fe_id, sess_type);
1646 return 0;
1647 }
1648
1649 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1650 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1651 channel_mixer_v2[fe_id][sess_type].input_channel;
1652
1653 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1654 __func__, sess_type, fe_id,
1655 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1656 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1657 msm_bedais[be_id].active);
1658
1659 if ((msm_bedais[be_id].active) &&
1660 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1661 unsigned long copp =
1662 session_copp_map[fe_id][sess_type][be_id];
1663 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1664 if (test_bit(j, &copp)) {
1665 copp_idx = j;
1666 break;
1667 }
1668 }
1669
1670 ret = adm_programable_channel_mixer(
1671 msm_bedais[be_id].port_id,
1672 copp_idx, dspst_id, sess_type,
1673 &channel_mixer_v2[fe_id][sess_type], 0);
1674 }
1675
1676 return ret;
1677}
1678
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301679static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1680 int dspst_id, int stream_type)
1681{
1682 int copp_idx = 0;
1683 int sess_type = 0;
1684 int i = 0, j = 0, be_id;
1685 int ret = 0;
1686
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301687 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1688 dspst_id, stream_type);
1689 if (ret) {
1690 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1691 fe_id);
1692 return ret;
1693 }
1694
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301695 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1696 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1697 return 0;
1698 }
1699
1700 if (!(channel_mixer[fe_id].enable)) {
1701 pr_debug("%s: channel mixer not enabled for FE %d\n",
1702 __func__, fe_id);
1703 return 0;
1704 }
1705
1706 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1707 sess_type = SESSION_TYPE_RX;
1708 else
1709 sess_type = SESSION_TYPE_TX;
1710
1711 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1712 ++i) {
1713 be_id = channel_input[fe_id][i] - 1;
1714 channel_mixer[fe_id].input_channels[i] =
1715 msm_bedais[be_id].channel;
1716
1717 if ((msm_bedais[be_id].active) &&
1718 test_bit(fe_id,
1719 &msm_bedais[be_id].fe_sessions[0])) {
1720 unsigned long copp =
1721 session_copp_map[fe_id][sess_type][be_id];
1722 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1723 if (test_bit(j, &copp)) {
1724 copp_idx = j;
1725 break;
1726 }
1727 }
1728
1729 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1730 __func__,
1731 fe_id, be_id, msm_bedais[be_id].channel,
1732 copp_idx);
1733 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001734 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301735 copp_idx, dspst_id, sess_type,
1736 channel_mixer + fe_id, i);
1737 }
1738 }
1739
1740 return ret;
1741}
1742
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301743/**
1744 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1745 * setting during runtime.
1746 *
1747 * @be_id: backend index
1748 * @session_id: session index
1749 * @session_type: session type
1750 * @params: parameters for channel mixer
1751 *
1752 * Retuen: 0 for success, else error
1753 */
1754int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1755 int session_type,
1756 struct msm_pcm_channel_mixer *params)
1757{
1758 int rc = 0;
1759 int port_id, copp_idx = 0;
1760
1761 be_id--;
1762 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1763 pr_err("%s: invalid backend id %d\n", __func__,
1764 be_id);
1765 return -EINVAL;
1766 }
1767
1768 port_id = msm_bedais[be_id].port_id;
1769 copp_idx = adm_get_default_copp_idx(port_id);
1770 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1771 __func__, port_id, copp_idx, session_id);
1772
1773 if ((params->input_channel < 0) ||
1774 (params->input_channel > ADM_MAX_CHANNELS)) {
1775 pr_err("%s: invalid input channel %d\n", __func__,
1776 params->input_channel);
1777 return -EINVAL;
1778 }
1779
1780 if ((params->output_channel < 0) ||
1781 (params->output_channel > ADM_MAX_CHANNELS)) {
1782 pr_err("%s: invalid output channel %d\n", __func__,
1783 params->output_channel);
1784 return -EINVAL;
1785 }
1786
1787 params->input_channels[0] = params->input_channel;
1788
1789 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1790 __func__, session_type,
1791 params->override_in_ch_map,
1792 params->override_out_ch_map,
1793 msm_bedais[be_id].active);
1794
1795 rc = adm_programable_channel_mixer(port_id,
1796 copp_idx,
1797 session_id,
1798 session_type,
1799 params,
1800 0);
1801 if (rc) {
1802 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1803 rc = -EINVAL;
1804 }
1805 return rc;
1806}
1807EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1808
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301809int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1810 int dspst_id, int stream_type)
1811{
1812 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1813 struct route_payload payload;
1814 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301815 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301816 uint32_t passthr_mode = LEGACY_PCM;
1817 int ret = 0;
1818
1819 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1820 /* bad ID assigned in machine driver */
1821 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1822 return -EINVAL;
1823 }
1824
1825 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1826 session_type = SESSION_TYPE_RX;
1827 path_type = ADM_PATH_PLAYBACK;
1828 port_type = MSM_AFE_PORT_TYPE_RX;
1829 } else {
1830 session_type = SESSION_TYPE_TX;
1831 path_type = ADM_PATH_LIVE_REC;
1832 port_type = MSM_AFE_PORT_TYPE_TX;
1833 }
1834
1835 mutex_lock(&routing_lock);
1836
1837 payload.num_copps = 0; /* only RX needs to use payload */
1838 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1839 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301840 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301841
1842 /* re-enable EQ if active */
1843 msm_qti_pp_send_eq_values(fedai_id);
1844 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1845 if (!is_be_dai_extproc(i) &&
1846 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1847 (msm_bedais[i].active) &&
1848 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1849 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301850 int port_id = get_port_id(msm_bedais[i].port_id);
1851
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301852 /*
1853 * check if ADM needs to be configured with different
1854 * channel mapping than backend
1855 */
1856 if (!msm_bedais[i].adm_override_ch)
1857 channels = msm_bedais[i].channel;
1858 else
1859 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301860
1861 bits_per_sample = msm_routing_get_bit_width(
1862 msm_bedais[i].format);
1863
1864 app_type =
1865 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1866 if (app_type) {
1867 app_type_idx =
1868 msm_pcm_routing_get_app_type_idx(app_type);
1869 sample_rate =
1870 fe_dai_app_type_cfg[fedai_id][session_type][i]
1871 .sample_rate;
1872 bits_per_sample =
1873 app_type_cfg[app_type_idx].bit_width;
1874 } else
1875 sample_rate = msm_bedais[i].sample_rate;
1876
1877 acdb_dev_id =
1878 fe_dai_app_type_cfg[fedai_id][session_type][i]
1879 .acdb_dev_id;
1880 topology = msm_routing_get_adm_topology(fedai_id,
1881 session_type,
1882 i);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301883 be_bit_width = msm_routing_get_bit_width(
1884 msm_bedais[i].format);
1885
1886 if (hifi_filter_enabled && (msm_bedais[i].sample_rate ==
1887 384000 ||msm_bedais[i].sample_rate == 352800)
1888 && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301889 bits_per_sample = msm_routing_get_bit_width(
1890 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05301891 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301892 sample_rate, channels, topology,
1893 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301894 app_type, acdb_dev_id,
1895 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301896 if ((copp_idx < 0) ||
1897 (copp_idx >= MAX_COPPS_PER_PORT)) {
1898 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001899 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301900 mutex_unlock(&routing_lock);
1901 return -EINVAL;
1902 }
1903 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1904 __func__, fedai_id, session_type, i);
1905 set_bit(copp_idx,
1906 &session_copp_map[fedai_id][session_type][i]);
1907
1908 if (msm_is_resample_needed(
1909 sample_rate,
1910 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301911 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301912 msm_bedais[i].sample_rate);
1913
1914 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1915 unsigned long copp =
1916 session_copp_map[fedai_id][session_type][i];
1917 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301918 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 payload.copp_idx[num_copps] = j;
1920 payload.app_type[num_copps] =
1921 fe_dai_app_type_cfg
1922 [fedai_id][session_type]
1923 [i].app_type;
1924 payload.acdb_dev_id[num_copps] =
1925 fe_dai_app_type_cfg
1926 [fedai_id][session_type]
1927 [i].acdb_dev_id;
1928 payload.sample_rate[num_copps] =
1929 fe_dai_app_type_cfg
1930 [fedai_id][session_type]
1931 [i].sample_rate;
1932 num_copps++;
1933 }
1934 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301935 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301936 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1937 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301938 }
1939 }
1940 if (num_copps) {
1941 payload.num_copps = num_copps;
1942 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1943 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1944 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1945 }
1946
1947 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1948 dspst_id, stream_type);
1949 mutex_unlock(&routing_lock);
1950 return ret;
1951}
1952
1953int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1954 int dspst_id, int stream_type,
1955 struct msm_pcm_routing_evt event_info)
1956{
1957 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1958 stream_type)) {
1959 pr_err("%s: failed to reg phy stream\n", __func__);
1960 return -EINVAL;
1961 }
1962
1963 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1964 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1965 else
1966 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1967 return 0;
1968}
1969
1970void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1971{
Surendar Karkae7507512018-07-20 15:46:54 +05301972 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301973 struct msm_pcm_routing_fdai_data *fdai;
1974
1975 if (!is_mm_lsm_fe_id(fedai_id)) {
1976 /* bad ID assigned in machine driver */
1977 pr_err("%s: bad MM ID\n", __func__);
1978 return;
1979 }
1980
1981 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1982 port_type = MSM_AFE_PORT_TYPE_RX;
1983 session_type = SESSION_TYPE_RX;
1984 path_type = ADM_PATH_PLAYBACK;
1985 } else {
1986 port_type = MSM_AFE_PORT_TYPE_TX;
1987 session_type = SESSION_TYPE_TX;
1988 path_type = ADM_PATH_LIVE_REC;
1989 }
1990
1991 mutex_lock(&routing_lock);
1992 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1993 if (!is_be_dai_extproc(i) &&
1994 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1995 (msm_bedais[i].active) &&
1996 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1997 int idx;
1998 unsigned long copp =
1999 session_copp_map[fedai_id][session_type][i];
2000 fdai = &fe_dai_map[fedai_id][session_type];
2001
2002 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2003 if (test_bit(idx, &copp))
2004 break;
2005
2006 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
2007 pr_debug("%s: copp idx is invalid, exiting\n",
2008 __func__);
2009 continue;
2010 }
Surendar Karkae7507512018-07-20 15:46:54 +05302011 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302012 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05302013 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002014 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302015 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302016 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
2017 __func__, copp, fedai_id, session_type, i);
2018 clear_bit(idx,
2019 &session_copp_map[fedai_id][session_type][i]);
2020 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2021 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2022 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302023 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302024 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302025 }
2026 }
2027
2028 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2029 fe_dai_map[fedai_id][session_type].be_srate = 0;
2030 mutex_unlock(&routing_lock);
2031}
2032
2033/* Check if FE/BE route is set */
2034static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2035{
2036 bool rc = false;
2037
2038 if (!is_mm_lsm_fe_id(fe_id)) {
2039 /* recheck FE ID in the mixer control defined in this file */
2040 pr_err("%s: bad MM ID\n", __func__);
2041 return rc;
2042 }
2043
2044 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2045 rc = true;
2046
2047 return rc;
2048}
2049
2050static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2051{
2052 int session_type, path_type, topology;
2053 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302054 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302055 struct msm_pcm_routing_fdai_data *fdai;
2056 uint32_t passthr_mode;
2057 bool is_lsm;
2058
2059 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2060
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05302061 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2062 afe_get_port_type(msm_bedais[reg].port_id) ==
2063 MSM_AFE_PORT_TYPE_RX) {
2064 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2065 __func__, set, msm_bedais[reg].port_id);
2066 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2067 } else if (!is_mm_lsm_fe_id(val)) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302068 /* recheck FE ID in the mixer control defined in this file */
2069 pr_err("%s: bad MM ID\n", __func__);
2070 return;
2071 }
2072
2073 if (!route_check_fe_id_adm_support(val)) {
2074 /* ignore adm open if not supported for fe_id */
2075 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002076 if (set)
2077 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2078 else
2079 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302080 return;
2081 }
2082
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302083 session_type =
2084 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2085 SESSION_TYPE_RX : SESSION_TYPE_TX;
2086 fdai = &fe_dai_map[val][session_type];
2087 passthr_mode = fdai->passthr_mode;
2088 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302089 if (passthr_mode != LEGACY_PCM)
2090 path_type = ADM_PATH_COMPRESSED_RX;
2091 else
2092 path_type = ADM_PATH_PLAYBACK;
2093 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002094 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302095 path_type = ADM_PATH_COMPRESSED_TX;
2096 else
2097 path_type = ADM_PATH_LIVE_REC;
2098 }
2099 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2100 (val <= MSM_FRONTEND_DAI_LSM8);
2101
2102 mutex_lock(&routing_lock);
2103 if (set) {
2104 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2105 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2106 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2107 voc_start_playback(set, msm_bedais[reg].port_id);
2108
2109 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302110 if (msm_bedais[reg].active && fdai->strm_id !=
2111 INVALID_SESSION) {
2112 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302113 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302114 /*
2115 * check if ADM needs to be configured with different
2116 * channel mapping than backend
2117 */
2118 if (!msm_bedais[reg].adm_override_ch)
2119 channels = msm_bedais[reg].channel;
2120 else
2121 channels = msm_bedais[reg].adm_override_ch;
2122 if (session_type == SESSION_TYPE_TX &&
2123 fdai->be_srate &&
2124 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2125 pr_debug("%s: flush strm %d diff BE rates\n",
2126 __func__, fdai->strm_id);
2127
2128 if (fdai->event_info.event_func)
2129 fdai->event_info.event_func(
2130 MSM_PCM_RT_EVT_BUF_RECFG,
2131 fdai->event_info.priv_data);
2132 fdai->be_srate = 0; /* might not need it */
2133 }
2134
2135 bits_per_sample = msm_routing_get_bit_width(
2136 msm_bedais[reg].format);
2137
2138 app_type =
2139 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2140 if (app_type && is_lsm) {
2141 app_type_idx =
2142 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2143 sample_rate =
2144 fe_dai_app_type_cfg[val][session_type][reg]
2145 .sample_rate;
2146 bits_per_sample =
2147 lsm_app_type_cfg[app_type_idx].bit_width;
2148 } else if (app_type) {
2149 app_type_idx =
2150 msm_pcm_routing_get_app_type_idx(app_type);
2151 sample_rate =
2152 fe_dai_app_type_cfg[val][session_type][reg]
2153 .sample_rate;
2154 bits_per_sample =
2155 app_type_cfg[app_type_idx].bit_width;
2156 } else
2157 sample_rate = msm_bedais[reg].sample_rate;
2158
2159 topology = msm_routing_get_adm_topology(val,
2160 session_type,
2161 reg);
2162 acdb_dev_id =
2163 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302164
2165 be_bit_width = msm_routing_get_bit_width(
2166 msm_bedais[reg].format);
2167 if (hifi_filter_enabled && (msm_bedais[reg].sample_rate
2168 == 384000 ||msm_bedais[reg].sample_rate ==
2169 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302170 bits_per_sample = msm_routing_get_bit_width(
2171 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302172 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302173 sample_rate, channels, topology,
2174 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302175 app_type, acdb_dev_id,
2176 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302177 if ((copp_idx < 0) ||
2178 (copp_idx >= MAX_COPPS_PER_PORT)) {
2179 pr_err("%s: adm open failed\n", __func__);
2180 mutex_unlock(&routing_lock);
2181 return;
2182 }
2183 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2184 __func__, val, session_type, reg);
2185 set_bit(copp_idx,
2186 &session_copp_map[val][session_type][reg]);
2187
2188 if (msm_is_resample_needed(
2189 sample_rate,
2190 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302191 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302192 msm_bedais[reg].sample_rate);
2193
2194 if (session_type == SESSION_TYPE_RX &&
2195 fdai->event_info.event_func)
2196 fdai->event_info.event_func(
2197 MSM_PCM_RT_EVT_DEVSWITCH,
2198 fdai->event_info.priv_data);
2199
2200 msm_pcm_routing_build_matrix(val, session_type,
2201 path_type,
2202 fdai->perf_mode,
2203 passthr_mode);
2204 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2205 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302206 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2207 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302208 }
2209 } else {
2210 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2211 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2212 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2213 voc_start_playback(set, msm_bedais[reg].port_id);
2214 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302215 if (msm_bedais[reg].active && fdai->strm_id !=
2216 INVALID_SESSION) {
2217 int idx;
2218 int port_id;
2219 unsigned long copp =
2220 session_copp_map[val][session_type][reg];
2221 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2222 if (test_bit(idx, &copp))
2223 break;
2224
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002225 if (idx >= MAX_COPPS_PER_PORT) {
2226 pr_debug("%s: copp idx is invalid, exiting\n",
2227 __func__);
2228 mutex_unlock(&routing_lock);
2229 return;
2230 }
Surendar Karkae7507512018-07-20 15:46:54 +05302231 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302232 topology = adm_get_topology_for_port_copp_idx(port_id,
2233 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002234 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302235 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302236 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2237 __func__, copp, val, session_type, reg,
2238 topology);
2239 clear_bit(idx,
2240 &session_copp_map[val][session_type][reg]);
2241 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2242 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2243 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2244 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302245 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302246 msm_pcm_routing_build_matrix(val, session_type,
2247 path_type,
2248 fdai->perf_mode,
2249 passthr_mode);
2250 }
2251 }
2252 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2253 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2254 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2255
2256 mutex_unlock(&routing_lock);
2257}
2258
2259static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2260 struct snd_ctl_elem_value *ucontrol)
2261{
2262 struct soc_mixer_control *mc =
2263 (struct soc_mixer_control *)kcontrol->private_value;
2264
Meng Wang05d5e9a2018-03-28 16:45:03 +08002265 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302266 ucontrol->value.integer.value[0] = 1;
2267 else
2268 ucontrol->value.integer.value[0] = 0;
2269
Meng Wang05d5e9a2018-03-28 16:45:03 +08002270 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302271 ucontrol->value.integer.value[0]);
2272
2273 return 0;
2274}
2275
2276static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2277 struct snd_ctl_elem_value *ucontrol)
2278{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302279 struct snd_soc_dapm_widget *widget =
2280 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302281 struct soc_mixer_control *mc =
2282 (struct soc_mixer_control *)kcontrol->private_value;
2283 struct snd_soc_dapm_update *update = NULL;
2284
2285 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002286 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2287 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302288 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2289 update);
2290 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002291 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2292 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302293 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2294 update);
2295 }
2296
2297 return 1;
2298}
2299
2300static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2301 struct snd_ctl_elem_value *ucontrol)
2302{
2303 struct soc_mixer_control *mc =
2304 (struct soc_mixer_control *)kcontrol->private_value;
2305
Meng Wang05d5e9a2018-03-28 16:45:03 +08002306 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302307 ucontrol->value.integer.value[0] = 1;
2308 else
2309 ucontrol->value.integer.value[0] = 0;
2310
Meng Wang05d5e9a2018-03-28 16:45:03 +08002311 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302312 ucontrol->value.integer.value[0]);
2313
2314 return 0;
2315}
2316
2317static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2318 struct snd_ctl_elem_value *ucontrol)
2319{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302320 struct snd_soc_dapm_widget *widget =
2321 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302322 struct soc_mixer_control *mc =
2323 (struct soc_mixer_control *)kcontrol->private_value;
2324 struct snd_soc_dapm_update *update = NULL;
2325
Meng Wang05d5e9a2018-03-28 16:45:03 +08002326 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302327 ucontrol->value.integer.value[0]);
2328
2329 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002330 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2331 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302332 snd_soc_dapm_mixer_update_power(widget->dapm,
2333 kcontrol, 1, update);
2334 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002335 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2336 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302337 snd_soc_dapm_mixer_update_power(widget->dapm,
2338 kcontrol, 0, update);
2339 }
2340
2341 return 1;
2342}
2343
2344static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2345{
2346 u32 session_id = 0;
2347 u16 path_type;
2348 struct media_format_info voc_be_media_format;
2349
2350 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2351
2352 session_id = msm_pcm_routing_get_voc_sessionid(val);
2353
2354 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2355 __func__, val, session_id);
2356
2357 mutex_lock(&routing_lock);
2358
2359 if (set)
2360 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2361 else
2362 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2363
2364 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2365 afe_get_port_type(msm_bedais[reg].port_id) ==
2366 MSM_AFE_PORT_TYPE_RX) {
2367 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2368 __func__, set, msm_bedais[reg].port_id);
2369 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2370 }
2371
2372 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2373 MSM_AFE_PORT_TYPE_RX)
2374 path_type = RX_PATH;
2375 else
2376 path_type = TX_PATH;
2377
2378 if (set) {
2379 if (msm_bedais[reg].active) {
2380 voc_set_route_flag(session_id, path_type, 1);
2381
2382 memset(&voc_be_media_format, 0,
2383 sizeof(struct media_format_info));
2384
2385 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2386 voc_be_media_format.num_channels =
2387 msm_bedais[reg].channel;
2388 voc_be_media_format.sample_rate =
2389 msm_bedais[reg].sample_rate;
2390 voc_be_media_format.bits_per_sample =
2391 msm_bedais[reg].format;
2392 /* Defaulting this to 1 for voice call usecases */
2393 voc_be_media_format.channel_mapping[0] = 1;
2394
2395 voc_set_device_config(session_id, path_type,
2396 &voc_be_media_format);
2397
2398 if (voc_get_route_flag(session_id, TX_PATH) &&
2399 voc_get_route_flag(session_id, RX_PATH))
2400 voc_enable_device(session_id);
2401 } else {
2402 pr_debug("%s BE is not active\n", __func__);
2403 }
2404 } else {
2405 voc_set_route_flag(session_id, path_type, 0);
2406 voc_disable_device(session_id);
2407 }
2408
2409 mutex_unlock(&routing_lock);
2410
2411}
2412
2413static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2414 struct snd_ctl_elem_value *ucontrol)
2415{
2416 struct soc_mixer_control *mc =
2417 (struct soc_mixer_control *)kcontrol->private_value;
2418
2419 mutex_lock(&routing_lock);
2420
Meng Wang05d5e9a2018-03-28 16:45:03 +08002421 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302422 ucontrol->value.integer.value[0] = 1;
2423 else
2424 ucontrol->value.integer.value[0] = 0;
2425
2426 mutex_unlock(&routing_lock);
2427
Meng Wang05d5e9a2018-03-28 16:45:03 +08002428 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302429 ucontrol->value.integer.value[0]);
2430
2431 return 0;
2432}
2433
2434static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2435 struct snd_ctl_elem_value *ucontrol)
2436{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302437 struct snd_soc_dapm_widget *widget =
2438 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302439 struct soc_mixer_control *mc =
2440 (struct soc_mixer_control *)kcontrol->private_value;
2441 struct snd_soc_dapm_update *update = NULL;
2442
2443 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002444 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302445 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2446 update);
2447 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002448 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2450 update);
2451 }
2452
2453 return 1;
2454}
2455
2456static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2457 struct snd_ctl_elem_value *ucontrol)
2458{
2459 struct soc_mixer_control *mc =
2460 (struct soc_mixer_control *)kcontrol->private_value;
2461
2462 mutex_lock(&routing_lock);
2463
Meng Wang05d5e9a2018-03-28 16:45:03 +08002464 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302465 ucontrol->value.integer.value[0] = 1;
2466 else
2467 ucontrol->value.integer.value[0] = 0;
2468
2469 mutex_unlock(&routing_lock);
2470
Meng Wang05d5e9a2018-03-28 16:45:03 +08002471 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302472 ucontrol->value.integer.value[0]);
2473
2474 return 0;
2475}
2476
2477static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2478 struct snd_ctl_elem_value *ucontrol)
2479{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302480 struct snd_soc_dapm_widget *widget =
2481 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302482 struct soc_mixer_control *mc =
2483 (struct soc_mixer_control *)kcontrol->private_value;
2484 struct snd_soc_dapm_update *update = NULL;
2485
2486 if (ucontrol->value.integer.value[0]) {
2487 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002488 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302489 mutex_unlock(&routing_lock);
2490
2491 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2492 update);
2493 } else {
2494 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002495 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302496 mutex_unlock(&routing_lock);
2497
2498 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2499 update);
2500 }
2501
Meng Wang05d5e9a2018-03-28 16:45:03 +08002502 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302503 ucontrol->value.integer.value[0]);
2504
2505 return 1;
2506}
2507
2508/*
2509 * Return the mapping between port ID and backend ID to enable the AFE callback
2510 * to determine the acdb_dev_id from the port id
2511 */
2512int msm_pcm_get_be_id_from_port_id(int port_id)
2513{
2514 int i;
2515 int be_id = -EINVAL;
2516
2517 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2518 if (msm_bedais[i].port_id == port_id) {
2519 be_id = i;
2520 break;
2521 }
2522 }
2523
2524 return be_id;
2525}
2526
2527/*
2528 * Return the registered dev_acdb_id given a port ID to enable identifying the
2529 * correct AFE calibration information by comparing the header information.
2530 */
2531static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2532{
2533 int acdb_id = -EINVAL;
2534 int i = 0;
2535 int session;
2536 int port_type = afe_get_port_type(port_id);
2537 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2538
2539 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2540 __func__, port_id, be_id, port_type);
2541
2542 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2543 session = SESSION_TYPE_TX;
2544 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2545 session = SESSION_TYPE_RX;
2546 } else {
2547 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2548 acdb_id = -EINVAL;
2549 goto exit;
2550 }
2551
2552 if (be_id < 0) {
2553 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2554 goto exit;
2555 }
2556
2557 mutex_lock(&routing_lock);
2558 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2559 MSM_FRONTEND_DAI_MAX);
2560 if (i < MSM_FRONTEND_DAI_MAX)
2561 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2562
2563 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2564 __func__, i, session, be_id, acdb_id);
2565 mutex_unlock(&routing_lock);
2566exit:
2567 return acdb_id;
2568}
2569
2570static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2571 struct snd_ctl_elem_value *ucontrol)
2572{
2573 ucontrol->value.integer.value[0] = fm_switch_enable;
2574 pr_debug("%s: FM Switch enable %ld\n", __func__,
2575 ucontrol->value.integer.value[0]);
2576 return 0;
2577}
2578
2579static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2580 struct snd_ctl_elem_value *ucontrol)
2581{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302582 struct snd_soc_dapm_widget *widget =
2583 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302584 struct snd_soc_dapm_update *update = NULL;
2585
2586 pr_debug("%s: FM Switch enable %ld\n", __func__,
2587 ucontrol->value.integer.value[0]);
2588 if (ucontrol->value.integer.value[0])
2589 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2590 update);
2591 else
2592 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2593 update);
2594 fm_switch_enable = ucontrol->value.integer.value[0];
2595 return 1;
2596}
2597
2598static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2599 struct snd_ctl_elem_value *ucontrol)
2600{
2601 ucontrol->value.integer.value[0] = hfp_switch_enable;
2602 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2603 ucontrol->value.integer.value[0]);
2604 return 0;
2605}
2606
2607static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2608 struct snd_ctl_elem_value *ucontrol)
2609{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302610 struct snd_soc_dapm_widget *widget =
2611 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302612 struct snd_soc_dapm_update *update = NULL;
2613
2614 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2615 ucontrol->value.integer.value[0]);
2616 if (ucontrol->value.integer.value[0])
2617 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2618 1, update);
2619 else
2620 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2621 0, update);
2622 hfp_switch_enable = ucontrol->value.integer.value[0];
2623 return 1;
2624}
2625
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002626static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2627 struct snd_ctl_elem_value *ucontrol)
2628{
2629 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2630 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2631 ucontrol->value.integer.value[0]);
2632 return 0;
2633}
2634
2635static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2636 struct snd_ctl_elem_value *ucontrol)
2637{
2638 struct snd_soc_dapm_widget *widget =
2639 snd_soc_dapm_kcontrol_widget(kcontrol);
2640 struct snd_soc_dapm_update *update = NULL;
2641
2642 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2643 ucontrol->value.integer.value[0]);
2644 a2dp_switch_enable = ucontrol->value.integer.value[0];
2645 if (a2dp_switch_enable)
2646 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2647 1, update);
2648 else
2649 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2650 0, update);
2651 return 1;
2652}
2653
Zhou Songcaa541d2019-02-19 18:37:47 +08002654static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2655 struct snd_ctl_elem_value *ucontrol)
2656{
2657 ucontrol->value.integer.value[0] = sco_switch_enable;
2658 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2659 ucontrol->value.integer.value[0]);
2660 return 0;
2661}
2662
2663static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2664 struct snd_ctl_elem_value *ucontrol)
2665{
2666 struct snd_soc_dapm_widget *widget =
2667 snd_soc_dapm_kcontrol_widget(kcontrol);
2668 struct snd_soc_dapm_update *update = NULL;
2669
2670 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2671 ucontrol->value.integer.value[0]);
2672 sco_switch_enable = ucontrol->value.integer.value[0];
2673 if (sco_switch_enable)
2674 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2675 1, update);
2676 else
2677 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2678 0, update);
2679 return 1;
2680}
2681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302682static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2683 struct snd_ctl_elem_value *ucontrol)
2684{
2685 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2686 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2687 ucontrol->value.integer.value[0]);
2688 return 0;
2689}
2690
2691static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2692 struct snd_ctl_elem_value *ucontrol)
2693{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302694 struct snd_soc_dapm_widget *widget =
2695 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302696 struct snd_soc_dapm_update *update = NULL;
2697
2698 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2699 ucontrol->value.integer.value[0]);
2700 if (ucontrol->value.integer.value[0])
2701 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2702 update);
2703 else
2704 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2705 update);
2706 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2707 return 1;
2708}
2709
2710static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2711 struct snd_ctl_elem_value *ucontrol)
2712{
2713 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2714 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2715 ucontrol->value.integer.value[0]);
2716 return 0;
2717}
2718
2719static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2720 struct snd_ctl_elem_value *ucontrol)
2721{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302722 struct snd_soc_dapm_widget *widget =
2723 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302724 struct snd_soc_dapm_update *update = NULL;
2725
2726 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2727 ucontrol->value.integer.value[0]);
2728 if (ucontrol->value.integer.value[0])
2729 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2730 update);
2731 else
2732 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2733 update);
2734 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2735 return 1;
2736}
2737
2738static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2739 struct snd_ctl_elem_value *ucontrol)
2740{
2741 ucontrol->value.integer.value[0] = usb_switch_enable;
2742 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2743 ucontrol->value.integer.value[0]);
2744 return 0;
2745}
2746
2747static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2748 struct snd_ctl_elem_value *ucontrol)
2749{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302750 struct snd_soc_dapm_widget *widget =
2751 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302752 struct snd_soc_dapm_update *update = NULL;
2753
2754 pr_debug("%s: USB Switch enable %ld\n", __func__,
2755 ucontrol->value.integer.value[0]);
2756 if (ucontrol->value.integer.value[0])
2757 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2758 1, update);
2759 else
2760 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2761 0, update);
2762 usb_switch_enable = ucontrol->value.integer.value[0];
2763 return 1;
2764}
2765
2766static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2767 struct snd_ctl_elem_value *ucontrol)
2768{
2769 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2770 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2771 ucontrol->value.integer.value[0]);
2772 return 0;
2773}
2774
2775static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2776 struct snd_ctl_elem_value *ucontrol)
2777{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302778 struct snd_soc_dapm_widget *widget =
2779 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302780 struct snd_soc_dapm_update *update = NULL;
2781
2782 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2783 ucontrol->value.integer.value[0]);
2784 if (ucontrol->value.integer.value[0])
2785 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2786 update);
2787 else
2788 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2789 update);
2790 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2791 return 1;
2792}
2793
2794static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2795 struct snd_ctl_elem_value *ucontrol)
2796{
2797 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2798 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2799 ucontrol->value.integer.value[0]);
2800 return 0;
2801}
2802
2803static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2804 struct snd_ctl_elem_value *ucontrol)
2805{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302806 struct snd_soc_dapm_widget *widget =
2807 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302808 struct snd_soc_dapm_update *update = NULL;
2809
2810 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2811 ucontrol->value.integer.value[0]);
2812 if (ucontrol->value.integer.value[0])
2813 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2814 update);
2815 else
2816 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2817 update);
2818 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2819 return 1;
2820}
2821
2822static int msm_routing_get_tert_mi2s_switch_mixer(
2823 struct snd_kcontrol *kcontrol,
2824 struct snd_ctl_elem_value *ucontrol)
2825{
2826 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2827 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2828 ucontrol->value.integer.value[0]);
2829 return 0;
2830}
2831
2832static int msm_routing_put_tert_mi2s_switch_mixer(
2833 struct snd_kcontrol *kcontrol,
2834 struct snd_ctl_elem_value *ucontrol)
2835{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302836 struct snd_soc_dapm_widget *widget =
2837 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302838 struct snd_soc_dapm_update *update = NULL;
2839
2840 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2841 ucontrol->value.integer.value[0]);
2842 if (ucontrol->value.integer.value[0])
2843 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2844 update);
2845 else
2846 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2847 update);
2848 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2849 return 1;
2850}
2851
2852static int msm_routing_get_quat_mi2s_switch_mixer(
2853 struct snd_kcontrol *kcontrol,
2854 struct snd_ctl_elem_value *ucontrol)
2855{
2856 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2857 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2858 ucontrol->value.integer.value[0]);
2859 return 0;
2860}
2861
2862static int msm_routing_put_quat_mi2s_switch_mixer(
2863 struct snd_kcontrol *kcontrol,
2864 struct snd_ctl_elem_value *ucontrol)
2865{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302866 struct snd_soc_dapm_widget *widget =
2867 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302868 struct snd_soc_dapm_update *update = NULL;
2869
2870 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2871 ucontrol->value.integer.value[0]);
2872 if (ucontrol->value.integer.value[0])
2873 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2874 update);
2875 else
2876 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2877 update);
2878 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2879 return 1;
2880}
2881
Rohit Kumara5077932017-09-10 22:05:05 +05302882static int msm_routing_get_quin_mi2s_switch_mixer(
2883 struct snd_kcontrol *kcontrol,
2884 struct snd_ctl_elem_value *ucontrol)
2885{
2886 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2887 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2888 ucontrol->value.integer.value[0]);
2889 return 0;
2890}
2891
2892static int msm_routing_put_quin_mi2s_switch_mixer(
2893 struct snd_kcontrol *kcontrol,
2894 struct snd_ctl_elem_value *ucontrol)
2895{
2896 struct snd_soc_dapm_widget *widget =
2897 snd_soc_dapm_kcontrol_widget(kcontrol);
2898 struct snd_soc_dapm_update *update = NULL;
2899
2900 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2901 ucontrol->value.integer.value[0]);
2902 if (ucontrol->value.integer.value[0])
2903 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2904 update);
2905 else
2906 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2907 update);
2908 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2909 return 1;
2910}
2911
Karthikeyan Manic3700752019-03-11 18:33:53 -07002912static int msm_routing_get_sen_mi2s_switch_mixer(
2913 struct snd_kcontrol *kcontrol,
2914 struct snd_ctl_elem_value *ucontrol)
2915{
2916 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2917 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2918 ucontrol->value.integer.value[0]);
2919 return 0;
2920}
2921
2922static int msm_routing_put_sen_mi2s_switch_mixer(
2923 struct snd_kcontrol *kcontrol,
2924 struct snd_ctl_elem_value *ucontrol)
2925{
2926 struct snd_soc_dapm_widget *widget =
2927 snd_soc_dapm_kcontrol_widget(kcontrol);
2928 struct snd_soc_dapm_update *update = NULL;
2929
2930 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2931 ucontrol->value.integer.value[0]);
2932 if (ucontrol->value.integer.value[0])
2933 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2934 update);
2935 else
2936 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2937 update);
2938 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2939 return 1;
2940}
2941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302942static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2943 struct snd_ctl_elem_value *ucontrol)
2944{
2945 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2946 pr_debug("%s: FM Switch enable %ld\n", __func__,
2947 ucontrol->value.integer.value[0]);
2948 return 0;
2949}
2950
2951static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2952 struct snd_ctl_elem_value *ucontrol)
2953{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302954 struct snd_soc_dapm_widget *widget =
2955 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302956 struct snd_soc_dapm_update *update = NULL;
2957
2958 pr_debug("%s: FM Switch enable %ld\n", __func__,
2959 ucontrol->value.integer.value[0]);
2960 if (ucontrol->value.integer.value[0])
2961 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2962 update);
2963 else
2964 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2965 update);
2966 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2967 return 1;
2968}
2969
2970static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2971 struct snd_ctl_elem_value *ucontrol)
2972{
2973 ucontrol->value.integer.value[0] = lsm_port_index;
2974 return 0;
2975}
2976
2977static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2978 struct snd_ctl_elem_value *ucontrol)
2979{
2980 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2981 int mux = ucontrol->value.enumerated.item[0];
2982 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2983
2984 if (mux >= e->items) {
2985 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2986 return -EINVAL;
2987 }
2988
2989 pr_debug("%s: LSM enable %ld\n", __func__,
2990 ucontrol->value.integer.value[0]);
2991 switch (ucontrol->value.integer.value[0]) {
2992 case 1:
2993 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2994 break;
2995 case 2:
2996 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2997 break;
2998 case 3:
2999 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
3000 break;
3001 case 4:
3002 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
3003 break;
3004 case 5:
3005 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
3006 break;
3007 case 6:
3008 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
3009 break;
3010 case 7:
3011 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
3012 break;
3013 case 8:
3014 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3015 break;
3016 case 9:
3017 lsm_port = ADM_LSM_PORT_ID;
3018 break;
3019 case 10:
3020 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
3021 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05303022 case 11:
3023 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
3024 break;
3025 case 12:
3026 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
3027 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303028 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003029 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303030 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303031 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003032 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3033 break;
3034 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303035 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3036 break;
Guodong Hu395166b2019-10-10 16:56:28 +08003037 case 16:
3038 lsm_port = AFE_PORT_ID_TERTIARY_TDM_TX;
3039 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303040 default:
3041 pr_err("Default lsm port");
3042 break;
3043 }
3044 set_lsm_port(lsm_port);
3045 lsm_port_index = ucontrol->value.integer.value[0];
3046
3047 return 0;
3048}
3049
3050static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3051 struct snd_ctl_elem_value *ucontrol)
3052{
3053 int i;
3054 u16 port_id;
3055 enum afe_mad_type mad_type;
3056
Guodong Hu395166b2019-10-10 16:56:28 +08003057 pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303058 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3059 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3060 strlen(lsm_port_text[i])))
3061 break;
3062
3063 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003064 pr_warn("%s: Invalid id name %s\n", __func__,
3065 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066 return -EINVAL;
3067 }
3068
3069 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3070
3071 /*Check for Tertiary/Quaternary/INT3 TX port*/
3072 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3073 strlen(lsm_port_text[7])))
3074 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3075
3076 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3077 strlen(lsm_port_text[8])))
3078 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3079
3080 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3081 strlen(lsm_port_text[10])))
3082 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3083
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303084 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3085 strlen(lsm_port_text[14])))
Guodong Hu395166b2019-10-10 16:56:28 +08003086 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3087
3088 if (strnstr(kcontrol->id.name, lsm_port_text[15],
3089 strlen(lsm_port_text[15])))
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303090 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3091
Guodong Hu395166b2019-10-10 16:56:28 +08003092 if (strnstr(kcontrol->id.name, lsm_port_text[16],
3093 strlen(lsm_port_text[16])))
3094 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3095
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303096 mad_type = afe_port_get_mad_type(port_id);
3097 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3098 mad_type);
3099 switch (mad_type) {
3100 case MAD_HW_NONE:
3101 ucontrol->value.integer.value[0] = MADNONE;
3102 break;
3103 case MAD_HW_AUDIO:
3104 ucontrol->value.integer.value[0] = MADAUDIO;
3105 break;
3106 case MAD_HW_BEACON:
3107 ucontrol->value.integer.value[0] = MADBEACON;
3108 break;
3109 case MAD_HW_ULTRASOUND:
3110 ucontrol->value.integer.value[0] = MADULTRASOUND;
3111 break;
3112 case MAD_SW_AUDIO:
3113 ucontrol->value.integer.value[0] = MADSWAUDIO;
3114 break;
3115 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003116 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303117 return -EINVAL;
3118 }
3119 return 0;
3120}
3121
3122static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3123 struct snd_ctl_elem_value *ucontrol)
3124{
3125 int i;
3126 u16 port_id;
3127 enum afe_mad_type mad_type;
3128
Guodong Hu395166b2019-10-10 16:56:28 +08003129 pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303130 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3131 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3132 strlen(lsm_port_text[i])))
3133 break;
3134
3135 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003136 pr_warn("%s: Invalid id name %s\n", __func__,
3137 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303138 return -EINVAL;
3139 }
3140
3141 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3142 switch (ucontrol->value.integer.value[0]) {
3143 case MADNONE:
3144 mad_type = MAD_HW_NONE;
3145 break;
3146 case MADAUDIO:
3147 mad_type = MAD_HW_AUDIO;
3148 break;
3149 case MADBEACON:
3150 mad_type = MAD_HW_BEACON;
3151 break;
3152 case MADULTRASOUND:
3153 mad_type = MAD_HW_ULTRASOUND;
3154 break;
3155 case MADSWAUDIO:
3156 mad_type = MAD_SW_AUDIO;
3157 break;
3158 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003159 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303160 return -EINVAL;
3161 }
3162
3163 /*Check for Tertiary/Quaternary/INT3 TX port*/
3164 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3165 strlen(lsm_port_text[7])))
3166 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3167
3168 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3169 strlen(lsm_port_text[8])))
3170 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3171
3172 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3173 strlen(lsm_port_text[10])))
3174 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3175
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303176 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3177 strlen(lsm_port_text[14])))
Guodong Hu395166b2019-10-10 16:56:28 +08003178 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3179
3180 if (strnstr(kcontrol->id.name, lsm_port_text[15],
3181 strlen(lsm_port_text[15])))
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303182 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3183
Guodong Hu395166b2019-10-10 16:56:28 +08003184 if (strnstr(kcontrol->id.name, lsm_port_text[16],
3185 strlen(lsm_port_text[16])))
3186 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3187
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303188 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3189 mad_type);
3190 return afe_port_set_mad_type(port_id, mad_type);
3191}
3192
3193static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3194
Surendar Karka25e77dd2019-05-09 14:33:45 +05303195static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303196 adm_override_chs_text);
3197
3198static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3199{
3200 int backend_id;
3201
3202 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3203 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303204 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3205 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303206 } else {
3207 pr_err("%s: unsupported backend id: %s",
3208 __func__, kcontrol->id.name);
3209 return -EINVAL;
3210 }
3211
3212 return backend_id;
3213}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303214
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303215static int msm_routing_adm_channel_config_get(
3216 struct snd_kcontrol *kcontrol,
3217 struct snd_ctl_elem_value *ucontrol)
3218{
3219 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3220
3221 if (backend_id >= 0) {
3222 mutex_lock(&routing_lock);
3223 ucontrol->value.integer.value[0] =
3224 msm_bedais[backend_id].adm_override_ch;
3225 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3226 ucontrol->value.integer.value[0], backend_id);
3227 mutex_unlock(&routing_lock);
3228 }
3229
3230 return 0;
3231}
3232
3233static int msm_routing_adm_channel_config_put(
3234 struct snd_kcontrol *kcontrol,
3235 struct snd_ctl_elem_value *ucontrol)
3236{
3237 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3238
3239 if (backend_id >= 0) {
3240 mutex_lock(&routing_lock);
3241 msm_bedais[backend_id].adm_override_ch =
3242 ucontrol->value.integer.value[0];
3243 pr_debug("%s:updating BE :%d adm channels: %d\n",
3244 __func__, backend_id,
3245 msm_bedais[backend_id].adm_override_ch);
3246 mutex_unlock(&routing_lock);
3247 }
3248
3249 return 0;
3250}
3251
3252static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303253 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3254 msm_routing_adm_channel_config_get,
3255 msm_routing_adm_channel_config_put),
3256 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303257 msm_routing_adm_channel_config_get,
3258 msm_routing_adm_channel_config_put),
3259};
3260
3261static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3262 struct snd_ctl_elem_value *ucontrol)
3263{
3264
3265 mutex_lock(&routing_lock);
3266 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3267 mutex_unlock(&routing_lock);
3268 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3269 ucontrol->value.integer.value[0]);
3270 return 0;
3271};
3272
3273static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3274 struct snd_ctl_elem_value *ucontrol)
3275{
3276 struct aanc_data aanc_info;
3277
3278 mutex_lock(&routing_lock);
3279 memset(&aanc_info, 0x00, sizeof(aanc_info));
3280 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3281 ucontrol->value.integer.value[0]);
3282 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3283 if (ucontrol->value.integer.value[0] == 0) {
3284 aanc_info.aanc_active = false;
3285 aanc_info.aanc_tx_port = 0;
3286 aanc_info.aanc_rx_port = 0;
3287 } else {
3288 aanc_info.aanc_active = true;
3289 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3290 aanc_info.aanc_tx_port =
3291 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3292 }
3293 afe_set_aanc_info(&aanc_info);
3294 mutex_unlock(&routing_lock);
3295 return 0;
3296};
3297static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3298 struct snd_ctl_elem_value *ucontrol)
3299{
3300 int idx = 0, shift = 0;
3301 struct soc_mixer_control *mc =
3302 (struct soc_mixer_control *)kcontrol->private_value;
3303
Meng Wang05d5e9a2018-03-28 16:45:03 +08003304 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3305 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303306
3307 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3308 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3309 return -EINVAL;
3310 }
3311
3312 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003313 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303314 ucontrol->value.integer.value[0] = 1;
3315 else
3316 ucontrol->value.integer.value[0] = 0;
3317
Meng Wang05d5e9a2018-03-28 16:45:03 +08003318 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303319 ucontrol->value.integer.value[0]);
3320
3321 return 0;
3322}
3323
3324static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3325 struct snd_ctl_elem_value *ucontrol)
3326{
3327 int idx = 0, shift = 0;
3328 struct soc_mixer_control *mc =
3329 (struct soc_mixer_control *)kcontrol->private_value;
3330
Meng Wang05d5e9a2018-03-28 16:45:03 +08003331 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3332 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303333
3334 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3335 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3336 return -EINVAL;
3337 }
3338
Meng Wang05d5e9a2018-03-28 16:45:03 +08003339 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3340 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303341 ucontrol->value.integer.value[0], idx, shift);
3342
3343 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003344 afe_loopback(1, msm_bedais[mc->shift].port_id,
3345 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303346 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003347 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303348 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003349 afe_loopback(0, msm_bedais[mc->shift].port_id,
3350 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303351 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003352 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303353 }
3354
3355 return 1;
3356}
3357
3358static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3359 struct snd_ctl_elem_value *ucontrol)
3360{
3361 u16 fe_id = 0;
3362
3363 fe_id = ((struct soc_mixer_control *)
3364 kcontrol->private_value)->shift;
3365 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3366 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3367 return -EINVAL;
3368 }
3369
3370 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3371
3372 return 0;
3373}
3374
3375static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3376 struct snd_ctl_elem_value *ucontrol)
3377{
3378 u16 fe_id = 0;
3379
3380 fe_id = ((struct soc_mixer_control *)
3381 kcontrol->private_value)->shift;
3382 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3383 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3384 return -EINVAL;
3385 }
3386
3387 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3388
3389 return 1;
3390}
3391
3392static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3393 struct snd_ctl_elem_value *ucontrol)
3394{
3395 u16 fe_id = 0;
3396
3397 fe_id = ((struct soc_multi_mixer_control *)
3398 kcontrol->private_value)->shift;
3399 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3400 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3401 return -EINVAL;
3402 }
3403
3404 ucontrol->value.integer.value[0] =
3405 channel_mixer[fe_id].output_channel;
3406 return 0;
3407}
3408
3409static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3410 struct snd_ctl_elem_value *ucontrol)
3411{
3412 u16 fe_id = 0;
3413
3414 fe_id = ((struct soc_multi_mixer_control *)
3415 kcontrol->private_value)->shift;
3416 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3417 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3418 return -EINVAL;
3419 }
3420
3421 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3422 fe_id,
3423 (unsigned int)(ucontrol->value.integer.value[0]));
3424 channel_mixer[fe_id].output_channel =
3425 (unsigned int)(ucontrol->value.integer.value[0]);
3426
3427 return 1;
3428}
3429
3430static const char *const ch_mixer[] = {"Disable", "Enable"};
3431
3432/* If new backend is added, need update this array */
3433static const char *const be_name[] = {
3434"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3435"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3436"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3437"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3438"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3439"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3440"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3441"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3442"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3443"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3444"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3445"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003446"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303447"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3448"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3449"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3450"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3451"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3452"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3453"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3454"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3455"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3456"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3457"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3458"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3459"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3460"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3461"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3462"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3463"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303464"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3465"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3466"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3467"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003468"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3469"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3470"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3471"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003472"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3473"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3474"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3475"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3476"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3477"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3478"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3479"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 -08003480"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 +05303481"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3482"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3483"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3484"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3485"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003486"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3487"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303488};
3489
3490static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3491 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3492static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3493 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3494static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3495 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3496static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3497 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303498static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3499 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3500static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3501 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3502static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3503 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3504static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3505 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303506static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3507 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303508
3509static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3510 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3511static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3512 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3513static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3514 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3515static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3516 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3517static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3518 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3519static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3520 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3521static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3522 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3523static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3524 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303525static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3526 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3527static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3528 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3529static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3530 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3531static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3532 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3533static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3534 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3535static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3536 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3537static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3538 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3539static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3540 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303541static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3542 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3543static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3544 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303545
3546static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3547 unsigned int channels,
3548 unsigned int items, const char *const names[])
3549{
3550 if (uinfo->value.enumerated.item >= items)
3551 uinfo->value.enumerated.item = items - 1;
3552
3553 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3554 sizeof(uinfo->value.enumerated.name),
3555 "ALSA: too long item name '%s'\n",
3556 names[uinfo->value.enumerated.item]);
3557 strlcpy(uinfo->value.enumerated.name,
3558 names[uinfo->value.enumerated.item],
3559 sizeof(uinfo->value.enumerated.name));
3560 return 0;
3561}
3562
3563static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3564 struct snd_ctl_elem_info *uinfo)
3565{
3566 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3567
3568 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3569 uinfo->count = 1;
3570
3571 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3572 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3573
3574 return 0;
3575}
3576static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3577 struct snd_ctl_elem_value *ucontrol)
3578{
3579 u16 fe_id = 0;
3580
3581 fe_id = ((struct soc_enum *)
3582 kcontrol->private_value)->shift_l;
3583 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3584 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3585 return -EINVAL;
3586 }
3587
3588 pr_debug("%s: FE %d %s\n", __func__,
3589 fe_id,
3590 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3591 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3592 return 0;
3593}
3594
3595static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3596 struct snd_ctl_elem_value *ucontrol)
3597{
3598 u16 fe_id = 0;
3599
3600 fe_id = ((struct soc_enum *)
3601 kcontrol->private_value)->shift_l;
3602 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3603 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3604 return -EINVAL;
3605 }
3606
3607 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3608 pr_debug("%s: %s FE %d\n", __func__,
3609 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3610 fe_id);
3611 return 0;
3612}
3613
3614static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3615 struct snd_ctl_elem_info *uinfo)
3616{
3617 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3618
3619 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3620 uinfo->count = 1;
3621
3622 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3623 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3624
3625 return 0;
3626}
3627
3628static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3629 struct snd_ctl_elem_value *ucontrol)
3630{
3631 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3632 u16 fe_id = 0, in_ch = 0;
3633
3634 fe_id = e->shift_l;
3635 in_ch = e->shift_r;
3636 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3637 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3638 return -EINVAL;
3639 }
3640 if (in_ch >= ADM_MAX_CHANNELS) {
3641 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3642 return -EINVAL;
3643 }
3644
3645 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3646 return 1;
3647}
3648
3649static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3650 struct snd_ctl_elem_value *ucontrol)
3651{
3652 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3653 u16 fe_id = 0, in_ch = 0;
3654
3655 fe_id = e->shift_l;
3656 in_ch = e->shift_r;
3657 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3658 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3659 return -EINVAL;
3660 }
3661 if (in_ch >= ADM_MAX_CHANNELS) {
3662 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3663 return -EINVAL;
3664 }
3665
3666 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3667 return 1;
3668}
3669
3670
3671static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3672 struct snd_ctl_elem_info *uinfo)
3673{
3674 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3675 uinfo->count = ADM_MAX_CHANNELS;
3676 uinfo->value.integer.min = 0;
3677 uinfo->value.integer.max = WEIGHT_0_DB;
3678
3679 return 0;
3680}
3681
3682static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3683 struct snd_ctl_elem_value *ucontrol)
3684{
3685 u16 fe_id = 0, out_ch = 0;
3686 int i, weight;
3687
3688 fe_id = ((struct soc_multi_mixer_control *)
3689 kcontrol->private_value)->shift;
3690 out_ch = ((struct soc_multi_mixer_control *)
3691 kcontrol->private_value)->rshift;
3692 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3693 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3694 return -EINVAL;
3695 }
3696 if (out_ch >= ADM_MAX_CHANNELS) {
3697 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3698 return -EINVAL;
3699 }
3700
3701 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3702 __func__, fe_id,
3703 ucontrol->value.integer.value[0],
3704 ucontrol->value.integer.value[1],
3705 ucontrol->value.integer.value[2],
3706 ucontrol->value.integer.value[3],
3707 ucontrol->value.integer.value[4],
3708 ucontrol->value.integer.value[5],
3709 ucontrol->value.integer.value[6],
3710 ucontrol->value.integer.value[7]);
3711
3712 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3713 weight = ucontrol->value.integer.value[i];
3714 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3715 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3716 __func__, fe_id, out_ch, i,
3717 channel_mixer[fe_id].channel_weight[out_ch][i]);
3718 }
3719
3720 return 0;
3721}
3722
3723static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3724 struct snd_ctl_elem_value *ucontrol)
3725{
3726 u16 fe_id = 0, out_ch = 0;
3727 int i;
3728
3729 fe_id = ((struct soc_multi_mixer_control *)
3730 kcontrol->private_value)->shift;
3731 out_ch = ((struct soc_multi_mixer_control *)
3732 kcontrol->private_value)->rshift;
3733 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3734 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3735 return -EINVAL;
3736 }
3737 if (out_ch >= ADM_MAX_CHANNELS) {
3738 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3739 return -EINVAL;
3740 }
3741
3742 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3743 ucontrol->value.integer.value[i] =
3744 channel_mixer[fe_id].channel_weight[out_ch][i];
3745
3746 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3747 __func__, fe_id,
3748 ucontrol->value.integer.value[0],
3749 ucontrol->value.integer.value[1],
3750 ucontrol->value.integer.value[2],
3751 ucontrol->value.integer.value[3],
3752 ucontrol->value.integer.value[4],
3753 ucontrol->value.integer.value[5],
3754 ucontrol->value.integer.value[6],
3755 ucontrol->value.integer.value[7]);
3756
3757 return 0;
3758}
3759
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303760static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3761 struct snd_ctl_elem_info *uinfo)
3762{
3763 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3764 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3765 /* Valid channel map value ranges from 1 to 64 */
3766 uinfo->value.integer.min = 0;
3767 uinfo->value.integer.max = 64;
3768
3769 return 0;
3770}
3771
3772static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3773 struct snd_ctl_elem_value *ucontrol)
3774{
3775 u16 fe_id = 0;
3776 int i, ch_map;
3777
3778 fe_id = ((struct soc_multi_mixer_control *)
3779 kcontrol->private_value)->shift;
3780 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3781 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3782 return -EINVAL;
3783 }
3784
3785 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3786 ch_map = ucontrol->value.integer.value[i];
3787 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3788 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3789 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3790 }
3791
3792 /* Make override_out_ch_map false if ch map is reset */
3793 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3794 channel_mixer[fe_id].override_out_ch_map = false;
3795 else
3796 channel_mixer[fe_id].override_out_ch_map = true;
3797
3798 return 0;
3799}
3800
3801static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3802 struct snd_ctl_elem_value *ucontrol)
3803{
3804 u16 fe_id = 0;
3805 int i;
3806
3807 fe_id = ((struct soc_multi_mixer_control *)
3808 kcontrol->private_value)->shift;
3809 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3810 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3811 return -EINVAL;
3812 }
3813
3814 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3815 ucontrol->value.integer.value[i] =
3816 channel_mixer[fe_id].out_ch_map[i];
3817
3818 return 0;
3819}
3820
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303821static const struct snd_kcontrol_new channel_mixer_controls[] = {
3822 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3823 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3824 msm_pcm_get_channel_rule_index,
3825 msm_pcm_put_channel_rule_index),
3826 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3827 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3828 msm_pcm_get_channel_rule_index,
3829 msm_pcm_put_channel_rule_index),
3830 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3831 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3832 msm_pcm_get_channel_rule_index,
3833 msm_pcm_put_channel_rule_index),
3834 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3835 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3836 msm_pcm_get_channel_rule_index,
3837 msm_pcm_put_channel_rule_index),
3838 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3839 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3840 msm_pcm_get_channel_rule_index,
3841 msm_pcm_put_channel_rule_index),
3842 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3843 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3844 msm_pcm_get_channel_rule_index,
3845 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303846 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3847 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3848 msm_pcm_get_channel_rule_index,
3849 msm_pcm_put_channel_rule_index),
3850 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3851 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3852 msm_pcm_get_channel_rule_index,
3853 msm_pcm_put_channel_rule_index),
3854 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3855 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3856 msm_pcm_get_channel_rule_index,
3857 msm_pcm_put_channel_rule_index),
3858 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3859 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3860 msm_pcm_get_channel_rule_index,
3861 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303862 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3863 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3864 msm_pcm_get_channel_rule_index,
3865 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303866
3867 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303868 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303869 msm_pcm_get_out_chs,
3870 msm_pcm_put_out_chs),
3871 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3872 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3873 msm_pcm_get_out_chs,
3874 msm_pcm_put_out_chs),
3875 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3876 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3877 msm_pcm_get_out_chs,
3878 msm_pcm_put_out_chs),
3879 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3880 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3881 msm_pcm_get_out_chs,
3882 msm_pcm_put_out_chs),
3883 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3884 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3885 msm_pcm_get_out_chs,
3886 msm_pcm_put_out_chs),
3887 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3888 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3889 msm_pcm_get_out_chs,
3890 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303891 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3892 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3893 msm_pcm_get_out_chs,
3894 msm_pcm_put_out_chs),
3895 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3896 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3897 msm_pcm_get_out_chs,
3898 msm_pcm_put_out_chs),
3899 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3900 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3901 msm_pcm_get_out_chs,
3902 msm_pcm_put_out_chs),
3903 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3904 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3905 msm_pcm_get_out_chs,
3906 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303907 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3908 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3909 msm_pcm_get_out_chs,
3910 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303911 {
3912 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3913 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3914 .name = "MultiMedia1 Channel Mixer",
3915 .info = msm_pcm_channel_mixer_info,
3916 .get = msm_pcm_channel_mixer_get,
3917 .put = msm_pcm_channel_mixer_put,
3918 .private_value = (unsigned long)&(mm1_channel_mux)
3919 },
3920 {
3921 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3922 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3923 .name = "MultiMedia2 Channel Mixer",
3924 .info = msm_pcm_channel_mixer_info,
3925 .get = msm_pcm_channel_mixer_get,
3926 .put = msm_pcm_channel_mixer_put,
3927 .private_value = (unsigned long)&(mm2_channel_mux)
3928 },
3929 {
3930 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3931 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3932 .name = "MultiMedia3 Channel Mixer",
3933 .info = msm_pcm_channel_mixer_info,
3934 .get = msm_pcm_channel_mixer_get,
3935 .put = msm_pcm_channel_mixer_put,
3936 .private_value = (unsigned long)&(mm3_channel_mux)
3937 },
3938 {
3939 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3940 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3941 .name = "MultiMedia4 Channel Mixer",
3942 .info = msm_pcm_channel_mixer_info,
3943 .get = msm_pcm_channel_mixer_get,
3944 .put = msm_pcm_channel_mixer_put,
3945 .private_value = (unsigned long)&(mm4_channel_mux)
3946 },
3947 {
3948 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3949 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303950 .name = "MultiMedia18 Channel Mixer",
3951 .info = msm_pcm_channel_mixer_info,
3952 .get = msm_pcm_channel_mixer_get,
3953 .put = msm_pcm_channel_mixer_put,
3954 .private_value = (unsigned long)&(mm18_channel_mux)
3955 },
3956 {
3957 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3958 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3959 .name = "MultiMedia19 Channel Mixer",
3960 .info = msm_pcm_channel_mixer_info,
3961 .get = msm_pcm_channel_mixer_get,
3962 .put = msm_pcm_channel_mixer_put,
3963 .private_value = (unsigned long)&(mm19_channel_mux)
3964 },
3965 {
3966 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3967 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3968 .name = "MultiMedia28 Channel Mixer",
3969 .info = msm_pcm_channel_mixer_info,
3970 .get = msm_pcm_channel_mixer_get,
3971 .put = msm_pcm_channel_mixer_put,
3972 .private_value = (unsigned long)&(mm28_channel_mux)
3973 },
3974 {
3975 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3976 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3977 .name = "MultiMedia29 Channel Mixer",
3978 .info = msm_pcm_channel_mixer_info,
3979 .get = msm_pcm_channel_mixer_get,
3980 .put = msm_pcm_channel_mixer_put,
3981 .private_value = (unsigned long)&(mm29_channel_mux)
3982 },
3983 {
3984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303986 .name = "MultiMedia30 Channel Mixer",
3987 .info = msm_pcm_channel_mixer_info,
3988 .get = msm_pcm_channel_mixer_get,
3989 .put = msm_pcm_channel_mixer_put,
3990 .private_value = (unsigned long)&(mm30_channel_mux)
3991 },
3992 {
3993 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3994 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303995 .name = "MultiMedia1 Output Channel1",
3996 .info = msm_pcm_channel_weight_info,
3997 .get = msm_pcm_channel_weight_get,
3998 .put = msm_pcm_channel_weight_put,
3999 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4000 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
4001 },
4002 {
4003 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4004 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4005 .name = "MultiMedia1 Output Channel2",
4006 .info = msm_pcm_channel_weight_info,
4007 .get = msm_pcm_channel_weight_get,
4008 .put = msm_pcm_channel_weight_put,
4009 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4010 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
4011 },
4012 {
4013 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4014 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4015 .name = "MultiMedia1 Output Channel3",
4016 .info = msm_pcm_channel_weight_info,
4017 .get = msm_pcm_channel_weight_get,
4018 .put = msm_pcm_channel_weight_put,
4019 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4020 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
4021 },
4022 {
4023 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4024 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4025 .name = "MultiMedia1 Output Channel4",
4026 .info = msm_pcm_channel_weight_info,
4027 .get = msm_pcm_channel_weight_get,
4028 .put = msm_pcm_channel_weight_put,
4029 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4030 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
4031 },
4032 {
4033 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4034 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4035 .name = "MultiMedia1 Output Channel5",
4036 .info = msm_pcm_channel_weight_info,
4037 .get = msm_pcm_channel_weight_get,
4038 .put = msm_pcm_channel_weight_put,
4039 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4040 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
4041 },
4042 {
4043 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4044 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4045 .name = "MultiMedia1 Output Channel6",
4046 .info = msm_pcm_channel_weight_info,
4047 .get = msm_pcm_channel_weight_get,
4048 .put = msm_pcm_channel_weight_put,
4049 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4050 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4051 },
4052 {
4053 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4054 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4055 .name = "MultiMedia1 Output Channel7",
4056 .info = msm_pcm_channel_weight_info,
4057 .get = msm_pcm_channel_weight_get,
4058 .put = msm_pcm_channel_weight_put,
4059 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4060 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4061 },
4062 {
4063 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4064 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4065 .name = "MultiMedia1 Output Channel8",
4066 .info = msm_pcm_channel_weight_info,
4067 .get = msm_pcm_channel_weight_get,
4068 .put = msm_pcm_channel_weight_put,
4069 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4070 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4071 },
4072 {
4073 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4074 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304075 .name = "MultiMedia1 Output Channel9",
4076 .info = msm_pcm_channel_weight_info,
4077 .get = msm_pcm_channel_weight_get,
4078 .put = msm_pcm_channel_weight_put,
4079 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4080 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4081 },
4082 {
4083 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4084 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4085 .name = "MultiMedia1 Output Channel10",
4086 .info = msm_pcm_channel_weight_info,
4087 .get = msm_pcm_channel_weight_get,
4088 .put = msm_pcm_channel_weight_put,
4089 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4090 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4091 },
4092 {
4093 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4094 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304095 .name = "MultiMedia1 Output Channel11",
4096 .info = msm_pcm_channel_weight_info,
4097 .get = msm_pcm_channel_weight_get,
4098 .put = msm_pcm_channel_weight_put,
4099 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4100 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4101 },
4102 {
4103 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4104 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4105 .name = "MultiMedia1 Output Channel12",
4106 .info = msm_pcm_channel_weight_info,
4107 .get = msm_pcm_channel_weight_get,
4108 .put = msm_pcm_channel_weight_put,
4109 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4110 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4111 },
4112 {
4113 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4114 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4115 .name = "MultiMedia1 Output Channel13",
4116 .info = msm_pcm_channel_weight_info,
4117 .get = msm_pcm_channel_weight_get,
4118 .put = msm_pcm_channel_weight_put,
4119 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4120 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4121 },
4122 {
4123 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4124 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4125 .name = "MultiMedia1 Output Channel14",
4126 .info = msm_pcm_channel_weight_info,
4127 .get = msm_pcm_channel_weight_get,
4128 .put = msm_pcm_channel_weight_put,
4129 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4130 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4131 },
4132 {
4133 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4134 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 .name = "MultiMedia2 Output Channel1",
4136 .info = msm_pcm_channel_weight_info,
4137 .get = msm_pcm_channel_weight_get,
4138 .put = msm_pcm_channel_weight_put,
4139 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4140 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4141 },
4142 {
4143 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4144 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4145 .name = "MultiMedia2 Output Channel2",
4146 .info = msm_pcm_channel_weight_info,
4147 .get = msm_pcm_channel_weight_get,
4148 .put = msm_pcm_channel_weight_put,
4149 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4150 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4151 },
4152 {
4153 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4154 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4155 .name = "MultiMedia2 Output Channel3",
4156 .info = msm_pcm_channel_weight_info,
4157 .get = msm_pcm_channel_weight_get,
4158 .put = msm_pcm_channel_weight_put,
4159 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4160 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4161 },
4162 {
4163 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4164 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4165 .name = "MultiMedia3 Output Channel1",
4166 .info = msm_pcm_channel_weight_info,
4167 .get = msm_pcm_channel_weight_get,
4168 .put = msm_pcm_channel_weight_put,
4169 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4170 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4171 },
4172 {
4173 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4174 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4175 .name = "MultiMedia3 Output Channel2",
4176 .info = msm_pcm_channel_weight_info,
4177 .get = msm_pcm_channel_weight_get,
4178 .put = msm_pcm_channel_weight_put,
4179 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4180 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4181 },
4182 {
4183 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4184 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304185 .name = "MultiMedia18 Output Channel1",
4186 .info = msm_pcm_channel_weight_info,
4187 .get = msm_pcm_channel_weight_get,
4188 .put = msm_pcm_channel_weight_put,
4189 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4190 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4191 },
4192 {
4193 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4194 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4195 .name = "MultiMedia18 Output Channel2",
4196 .info = msm_pcm_channel_weight_info,
4197 .get = msm_pcm_channel_weight_get,
4198 .put = msm_pcm_channel_weight_put,
4199 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4200 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4201 },
4202 {
4203 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4204 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4205 .name = "MultiMedia18 Output Channel3",
4206 .info = msm_pcm_channel_weight_info,
4207 .get = msm_pcm_channel_weight_get,
4208 .put = msm_pcm_channel_weight_put,
4209 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4210 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4211 },
4212 {
4213 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4214 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4215 .name = "MultiMedia18 Output Channel4",
4216 .info = msm_pcm_channel_weight_info,
4217 .get = msm_pcm_channel_weight_get,
4218 .put = msm_pcm_channel_weight_put,
4219 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4220 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4221 },
4222 {
4223 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4224 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4225 .name = "MultiMedia18 Output Channel5",
4226 .info = msm_pcm_channel_weight_info,
4227 .get = msm_pcm_channel_weight_get,
4228 .put = msm_pcm_channel_weight_put,
4229 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4230 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4231 },
4232 {
4233 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4234 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4235 .name = "MultiMedia18 Output Channel6",
4236 .info = msm_pcm_channel_weight_info,
4237 .get = msm_pcm_channel_weight_get,
4238 .put = msm_pcm_channel_weight_put,
4239 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4240 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4241 },
4242 {
4243 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4244 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4245 .name = "MultiMedia18 Output Channel7",
4246 .info = msm_pcm_channel_weight_info,
4247 .get = msm_pcm_channel_weight_get,
4248 .put = msm_pcm_channel_weight_put,
4249 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4250 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4251 },
4252 {
4253 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4254 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4255 .name = "MultiMedia18 Output Channel8",
4256 .info = msm_pcm_channel_weight_info,
4257 .get = msm_pcm_channel_weight_get,
4258 .put = msm_pcm_channel_weight_put,
4259 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4260 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4261 },
4262 {
4263 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4264 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4265 .name = "MultiMedia18 Output Channel9",
4266 .info = msm_pcm_channel_weight_info,
4267 .get = msm_pcm_channel_weight_get,
4268 .put = msm_pcm_channel_weight_put,
4269 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4270 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4271 },
4272 {
4273 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4274 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4275 .name = "MultiMedia18 Output Channel10",
4276 .info = msm_pcm_channel_weight_info,
4277 .get = msm_pcm_channel_weight_get,
4278 .put = msm_pcm_channel_weight_put,
4279 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4280 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4281 },
4282 {
4283 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4284 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4285 .name = "MultiMedia18 Output Channel11",
4286 .info = msm_pcm_channel_weight_info,
4287 .get = msm_pcm_channel_weight_get,
4288 .put = msm_pcm_channel_weight_put,
4289 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4290 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4291 },
4292 {
4293 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4294 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4295 .name = "MultiMedia18 Output Channel12",
4296 .info = msm_pcm_channel_weight_info,
4297 .get = msm_pcm_channel_weight_get,
4298 .put = msm_pcm_channel_weight_put,
4299 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4300 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4301 },
4302 {
4303 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4304 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4305 .name = "MultiMedia18 Output Channel13",
4306 .info = msm_pcm_channel_weight_info,
4307 .get = msm_pcm_channel_weight_get,
4308 .put = msm_pcm_channel_weight_put,
4309 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4310 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4311 },
4312 {
4313 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4314 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4315 .name = "MultiMedia18 Output Channel14",
4316 .info = msm_pcm_channel_weight_info,
4317 .get = msm_pcm_channel_weight_get,
4318 .put = msm_pcm_channel_weight_put,
4319 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4320 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4321 },
4322 {
4323 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4324 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4325 .name = "MultiMedia19 Output Channel1",
4326 .info = msm_pcm_channel_weight_info,
4327 .get = msm_pcm_channel_weight_get,
4328 .put = msm_pcm_channel_weight_put,
4329 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4330 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4331 },
4332 {
4333 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4334 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4335 .name = "MultiMedia19 Output Channel2",
4336 .info = msm_pcm_channel_weight_info,
4337 .get = msm_pcm_channel_weight_get,
4338 .put = msm_pcm_channel_weight_put,
4339 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4340 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4341 },
4342 {
4343 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4344 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4345 .name = "MultiMedia19 Output Channel3",
4346 .info = msm_pcm_channel_weight_info,
4347 .get = msm_pcm_channel_weight_get,
4348 .put = msm_pcm_channel_weight_put,
4349 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4350 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4351 },
4352 {
4353 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4354 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4355 .name = "MultiMedia19 Output Channel4",
4356 .info = msm_pcm_channel_weight_info,
4357 .get = msm_pcm_channel_weight_get,
4358 .put = msm_pcm_channel_weight_put,
4359 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4360 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4361 },
4362 {
4363 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4364 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4365 .name = "MultiMedia19 Output Channel5",
4366 .info = msm_pcm_channel_weight_info,
4367 .get = msm_pcm_channel_weight_get,
4368 .put = msm_pcm_channel_weight_put,
4369 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4370 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4371 },
4372 {
4373 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4374 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4375 .name = "MultiMedia19 Output Channel6",
4376 .info = msm_pcm_channel_weight_info,
4377 .get = msm_pcm_channel_weight_get,
4378 .put = msm_pcm_channel_weight_put,
4379 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4380 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4381 },
4382 {
4383 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4384 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4385 .name = "MultiMedia19 Output Channel7",
4386 .info = msm_pcm_channel_weight_info,
4387 .get = msm_pcm_channel_weight_get,
4388 .put = msm_pcm_channel_weight_put,
4389 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4390 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4391 },
4392 {
4393 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4394 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4395 .name = "MultiMedia19 Output Channel8",
4396 .info = msm_pcm_channel_weight_info,
4397 .get = msm_pcm_channel_weight_get,
4398 .put = msm_pcm_channel_weight_put,
4399 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4400 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4401 },
4402 {
4403 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4404 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4405 .name = "MultiMedia19 Output Channel9",
4406 .info = msm_pcm_channel_weight_info,
4407 .get = msm_pcm_channel_weight_get,
4408 .put = msm_pcm_channel_weight_put,
4409 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4410 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4411 },
4412 {
4413 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4414 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4415 .name = "MultiMedia19 Output Channel10",
4416 .info = msm_pcm_channel_weight_info,
4417 .get = msm_pcm_channel_weight_get,
4418 .put = msm_pcm_channel_weight_put,
4419 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4420 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4421 },
4422 {
4423 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4424 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4425 .name = "MultiMedia19 Output Channel11",
4426 .info = msm_pcm_channel_weight_info,
4427 .get = msm_pcm_channel_weight_get,
4428 .put = msm_pcm_channel_weight_put,
4429 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4430 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4431 },
4432 {
4433 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4434 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4435 .name = "MultiMedia19 Output Channel12",
4436 .info = msm_pcm_channel_weight_info,
4437 .get = msm_pcm_channel_weight_get,
4438 .put = msm_pcm_channel_weight_put,
4439 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4440 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4441 },
4442 {
4443 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4444 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4445 .name = "MultiMedia19 Output Channel13",
4446 .info = msm_pcm_channel_weight_info,
4447 .get = msm_pcm_channel_weight_get,
4448 .put = msm_pcm_channel_weight_put,
4449 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4450 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4451 },
4452 {
4453 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4454 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4455 .name = "MultiMedia19 Output Channel14",
4456 .info = msm_pcm_channel_weight_info,
4457 .get = msm_pcm_channel_weight_get,
4458 .put = msm_pcm_channel_weight_put,
4459 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4460 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4461 },
4462 {
4463 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4464 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4465 .name = "MultiMedia28 Output Channel1",
4466 .info = msm_pcm_channel_weight_info,
4467 .get = msm_pcm_channel_weight_get,
4468 .put = msm_pcm_channel_weight_put,
4469 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4470 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4471 },
4472 {
4473 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4474 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4475 .name = "MultiMedia28 Output Channel2",
4476 .info = msm_pcm_channel_weight_info,
4477 .get = msm_pcm_channel_weight_get,
4478 .put = msm_pcm_channel_weight_put,
4479 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4480 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4481 },
4482 {
4483 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4484 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4485 .name = "MultiMedia28 Output Channel3",
4486 .info = msm_pcm_channel_weight_info,
4487 .get = msm_pcm_channel_weight_get,
4488 .put = msm_pcm_channel_weight_put,
4489 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4490 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4491 },
4492 {
4493 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4494 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4495 .name = "MultiMedia28 Output Channel4",
4496 .info = msm_pcm_channel_weight_info,
4497 .get = msm_pcm_channel_weight_get,
4498 .put = msm_pcm_channel_weight_put,
4499 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4500 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4501 },
4502 {
4503 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4504 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4505 .name = "MultiMedia28 Output Channel5",
4506 .info = msm_pcm_channel_weight_info,
4507 .get = msm_pcm_channel_weight_get,
4508 .put = msm_pcm_channel_weight_put,
4509 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4510 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4511 },
4512 {
4513 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4514 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4515 .name = "MultiMedia28 Output Channel6",
4516 .info = msm_pcm_channel_weight_info,
4517 .get = msm_pcm_channel_weight_get,
4518 .put = msm_pcm_channel_weight_put,
4519 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4520 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4521 },
4522 {
4523 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4524 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4525 .name = "MultiMedia28 Output Channel7",
4526 .info = msm_pcm_channel_weight_info,
4527 .get = msm_pcm_channel_weight_get,
4528 .put = msm_pcm_channel_weight_put,
4529 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4530 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4531 },
4532 {
4533 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4534 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4535 .name = "MultiMedia28 Output Channel8",
4536 .info = msm_pcm_channel_weight_info,
4537 .get = msm_pcm_channel_weight_get,
4538 .put = msm_pcm_channel_weight_put,
4539 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4540 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4541 },
4542 {
4543 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4544 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4545 .name = "MultiMedia28 Output Channel9",
4546 .info = msm_pcm_channel_weight_info,
4547 .get = msm_pcm_channel_weight_get,
4548 .put = msm_pcm_channel_weight_put,
4549 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4550 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4551 },
4552 {
4553 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4554 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4555 .name = "MultiMedia28 Output Channel10",
4556 .info = msm_pcm_channel_weight_info,
4557 .get = msm_pcm_channel_weight_get,
4558 .put = msm_pcm_channel_weight_put,
4559 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4560 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4561 },
4562 {
4563 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4564 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4565 .name = "MultiMedia28 Output Channel11",
4566 .info = msm_pcm_channel_weight_info,
4567 .get = msm_pcm_channel_weight_get,
4568 .put = msm_pcm_channel_weight_put,
4569 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4570 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4571 },
4572 {
4573 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4574 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4575 .name = "MultiMedia28 Output Channel12",
4576 .info = msm_pcm_channel_weight_info,
4577 .get = msm_pcm_channel_weight_get,
4578 .put = msm_pcm_channel_weight_put,
4579 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4580 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4581 },
4582 {
4583 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4584 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4585 .name = "MultiMedia28 Output Channel13",
4586 .info = msm_pcm_channel_weight_info,
4587 .get = msm_pcm_channel_weight_get,
4588 .put = msm_pcm_channel_weight_put,
4589 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4590 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4591 },
4592 {
4593 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4594 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4595 .name = "MultiMedia28 Output Channel14",
4596 .info = msm_pcm_channel_weight_info,
4597 .get = msm_pcm_channel_weight_get,
4598 .put = msm_pcm_channel_weight_put,
4599 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4600 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4601 },
4602 {
4603 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4604 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4605 .name = "MultiMedia29 Output Channel1",
4606 .info = msm_pcm_channel_weight_info,
4607 .get = msm_pcm_channel_weight_get,
4608 .put = msm_pcm_channel_weight_put,
4609 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4610 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4611 },
4612 {
4613 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4614 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4615 .name = "MultiMedia29 Output Channel2",
4616 .info = msm_pcm_channel_weight_info,
4617 .get = msm_pcm_channel_weight_get,
4618 .put = msm_pcm_channel_weight_put,
4619 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4620 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4621 },
4622 {
4623 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4624 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4625 .name = "MultiMedia29 Output Channel3",
4626 .info = msm_pcm_channel_weight_info,
4627 .get = msm_pcm_channel_weight_get,
4628 .put = msm_pcm_channel_weight_put,
4629 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4630 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4631 },
4632 {
4633 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4634 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4635 .name = "MultiMedia29 Output Channel4",
4636 .info = msm_pcm_channel_weight_info,
4637 .get = msm_pcm_channel_weight_get,
4638 .put = msm_pcm_channel_weight_put,
4639 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4640 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4641 },
4642 {
4643 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4644 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4645 .name = "MultiMedia29 Output Channel5",
4646 .info = msm_pcm_channel_weight_info,
4647 .get = msm_pcm_channel_weight_get,
4648 .put = msm_pcm_channel_weight_put,
4649 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4650 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4651 },
4652 {
4653 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4654 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4655 .name = "MultiMedia29 Output Channel6",
4656 .info = msm_pcm_channel_weight_info,
4657 .get = msm_pcm_channel_weight_get,
4658 .put = msm_pcm_channel_weight_put,
4659 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4660 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4661 },
4662 {
4663 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4664 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4665 .name = "MultiMedia29 Output Channel7",
4666 .info = msm_pcm_channel_weight_info,
4667 .get = msm_pcm_channel_weight_get,
4668 .put = msm_pcm_channel_weight_put,
4669 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4670 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4671 },
4672 {
4673 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4674 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4675 .name = "MultiMedia29 Output Channel8",
4676 .info = msm_pcm_channel_weight_info,
4677 .get = msm_pcm_channel_weight_get,
4678 .put = msm_pcm_channel_weight_put,
4679 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4680 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4681 },
4682 {
4683 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4684 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4685 .name = "MultiMedia29 Output Channel9",
4686 .info = msm_pcm_channel_weight_info,
4687 .get = msm_pcm_channel_weight_get,
4688 .put = msm_pcm_channel_weight_put,
4689 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4690 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4691 },
4692 {
4693 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4694 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4695 .name = "MultiMedia29 Output Channel10",
4696 .info = msm_pcm_channel_weight_info,
4697 .get = msm_pcm_channel_weight_get,
4698 .put = msm_pcm_channel_weight_put,
4699 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4700 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4701 },
4702 {
4703 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4704 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4705 .name = "MultiMedia29 Output Channel11",
4706 .info = msm_pcm_channel_weight_info,
4707 .get = msm_pcm_channel_weight_get,
4708 .put = msm_pcm_channel_weight_put,
4709 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4710 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4711 },
4712 {
4713 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4714 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4715 .name = "MultiMedia29 Output Channel12",
4716 .info = msm_pcm_channel_weight_info,
4717 .get = msm_pcm_channel_weight_get,
4718 .put = msm_pcm_channel_weight_put,
4719 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4720 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4721 },
4722 {
4723 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4724 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4725 .name = "MultiMedia29 Output Channel13",
4726 .info = msm_pcm_channel_weight_info,
4727 .get = msm_pcm_channel_weight_get,
4728 .put = msm_pcm_channel_weight_put,
4729 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4730 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4731 },
4732 {
4733 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4734 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4735 .name = "MultiMedia29 Output Channel14",
4736 .info = msm_pcm_channel_weight_info,
4737 .get = msm_pcm_channel_weight_get,
4738 .put = msm_pcm_channel_weight_put,
4739 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4740 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4741 },
4742 {
4743 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4744 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304745 .name = "MultiMedia30 Output Channel1",
4746 .info = msm_pcm_channel_weight_info,
4747 .get = msm_pcm_channel_weight_get,
4748 .put = msm_pcm_channel_weight_put,
4749 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4750 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4751 },
4752 {
4753 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4754 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4755 .name = "MultiMedia30 Output Channel2",
4756 .info = msm_pcm_channel_weight_info,
4757 .get = msm_pcm_channel_weight_get,
4758 .put = msm_pcm_channel_weight_put,
4759 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4760 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4761 },
4762 {
4763 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4764 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4765 .name = "MultiMedia30 Output Channel3",
4766 .info = msm_pcm_channel_weight_info,
4767 .get = msm_pcm_channel_weight_get,
4768 .put = msm_pcm_channel_weight_put,
4769 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4770 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4771 },
4772 {
4773 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4774 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4775 .name = "MultiMedia30 Output Channel4",
4776 .info = msm_pcm_channel_weight_info,
4777 .get = msm_pcm_channel_weight_get,
4778 .put = msm_pcm_channel_weight_put,
4779 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4780 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4781 },
4782 {
4783 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4784 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4785 .name = "MultiMedia30 Output Channel5",
4786 .info = msm_pcm_channel_weight_info,
4787 .get = msm_pcm_channel_weight_get,
4788 .put = msm_pcm_channel_weight_put,
4789 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4790 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4791 },
4792 {
4793 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4794 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4795 .name = "MultiMedia30 Output Channel6",
4796 .info = msm_pcm_channel_weight_info,
4797 .get = msm_pcm_channel_weight_get,
4798 .put = msm_pcm_channel_weight_put,
4799 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4800 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4801 },
4802 {
4803 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4804 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4805 .name = "MultiMedia30 Output Channel7",
4806 .info = msm_pcm_channel_weight_info,
4807 .get = msm_pcm_channel_weight_get,
4808 .put = msm_pcm_channel_weight_put,
4809 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4810 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4811 },
4812 {
4813 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4814 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4815 .name = "MultiMedia30 Output Channel8",
4816 .info = msm_pcm_channel_weight_info,
4817 .get = msm_pcm_channel_weight_get,
4818 .put = msm_pcm_channel_weight_put,
4819 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4820 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4821 },
4822 {
4823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4824 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4825 .name = "MultiMedia30 Output Channel9",
4826 .info = msm_pcm_channel_weight_info,
4827 .get = msm_pcm_channel_weight_get,
4828 .put = msm_pcm_channel_weight_put,
4829 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4830 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4831 },
4832 {
4833 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4834 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4835 .name = "MultiMedia30 Output Channel10",
4836 .info = msm_pcm_channel_weight_info,
4837 .get = msm_pcm_channel_weight_get,
4838 .put = msm_pcm_channel_weight_put,
4839 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4840 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4841 },
4842 {
4843 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4844 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4845 .name = "MultiMedia30 Output Channel11",
4846 .info = msm_pcm_channel_weight_info,
4847 .get = msm_pcm_channel_weight_get,
4848 .put = msm_pcm_channel_weight_put,
4849 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4850 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4851 },
4852 {
4853 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4854 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4855 .name = "MultiMedia30 Output Channel12",
4856 .info = msm_pcm_channel_weight_info,
4857 .get = msm_pcm_channel_weight_get,
4858 .put = msm_pcm_channel_weight_put,
4859 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4860 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4861 },
4862 {
4863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4864 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4865 .name = "MultiMedia30 Output Channel13",
4866 .info = msm_pcm_channel_weight_info,
4867 .get = msm_pcm_channel_weight_get,
4868 .put = msm_pcm_channel_weight_put,
4869 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4870 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4871 },
4872 {
4873 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4874 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4875 .name = "MultiMedia30 Output Channel14",
4876 .info = msm_pcm_channel_weight_info,
4877 .get = msm_pcm_channel_weight_get,
4878 .put = msm_pcm_channel_weight_put,
4879 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4880 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4881 },
4882 {
4883 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4884 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304885 .name = "MultiMedia1 Channel1",
4886 .info = msm_pcm_channel_input_be_info,
4887 .get = msm_pcm_channel_input_be_get,
4888 .put = msm_pcm_channel_input_be_put,
4889 .private_value = (unsigned long)&(mm1_ch1_enum)
4890 },
4891 {
4892 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4893 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4894 .name = "MultiMedia1 Channel2",
4895 .info = msm_pcm_channel_input_be_info,
4896 .get = msm_pcm_channel_input_be_get,
4897 .put = msm_pcm_channel_input_be_put,
4898 .private_value = (unsigned long)&(mm1_ch2_enum)
4899 },
4900 {
4901 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4902 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4903 .name = "MultiMedia1 Channel3",
4904 .info = msm_pcm_channel_input_be_info,
4905 .get = msm_pcm_channel_input_be_get,
4906 .put = msm_pcm_channel_input_be_put,
4907 .private_value = (unsigned long)&(mm1_ch3_enum)
4908 },
4909 {
4910 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4911 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4912 .name = "MultiMedia1 Channel4",
4913 .info = msm_pcm_channel_input_be_info,
4914 .get = msm_pcm_channel_input_be_get,
4915 .put = msm_pcm_channel_input_be_put,
4916 .private_value = (unsigned long)&(mm1_ch4_enum)
4917 },
4918 {
4919 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4920 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4921 .name = "MultiMedia1 Channel5",
4922 .info = msm_pcm_channel_input_be_info,
4923 .get = msm_pcm_channel_input_be_get,
4924 .put = msm_pcm_channel_input_be_put,
4925 .private_value = (unsigned long)&(mm1_ch5_enum)
4926 },
4927 {
4928 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4929 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4930 .name = "MultiMedia1 Channel6",
4931 .info = msm_pcm_channel_input_be_info,
4932 .get = msm_pcm_channel_input_be_get,
4933 .put = msm_pcm_channel_input_be_put,
4934 .private_value = (unsigned long)&(mm1_ch6_enum)
4935 },
4936 {
4937 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4938 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4939 .name = "MultiMedia1 Channel7",
4940 .info = msm_pcm_channel_input_be_info,
4941 .get = msm_pcm_channel_input_be_get,
4942 .put = msm_pcm_channel_input_be_put,
4943 .private_value = (unsigned long)&(mm1_ch7_enum)
4944 },
4945 {
4946 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4947 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4948 .name = "MultiMedia1 Channel8",
4949 .info = msm_pcm_channel_input_be_info,
4950 .get = msm_pcm_channel_input_be_get,
4951 .put = msm_pcm_channel_input_be_put,
4952 .private_value = (unsigned long)&(mm1_ch8_enum)
4953 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304954 {
4955 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4956 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304957 .name = "MultiMedia18 Channel1",
4958 .info = msm_pcm_channel_input_be_info,
4959 .get = msm_pcm_channel_input_be_get,
4960 .put = msm_pcm_channel_input_be_put,
4961 .private_value = (unsigned long)&(mm18_ch1_enum)
4962 },
4963 {
4964 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4965 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4966 .name = "MultiMedia18 Channel2",
4967 .info = msm_pcm_channel_input_be_info,
4968 .get = msm_pcm_channel_input_be_get,
4969 .put = msm_pcm_channel_input_be_put,
4970 .private_value = (unsigned long)&(mm18_ch2_enum)
4971 },
4972 {
4973 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4974 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4975 .name = "MultiMedia19 Channel1",
4976 .info = msm_pcm_channel_input_be_info,
4977 .get = msm_pcm_channel_input_be_get,
4978 .put = msm_pcm_channel_input_be_put,
4979 .private_value = (unsigned long)&(mm19_ch1_enum)
4980 },
4981 {
4982 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4983 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4984 .name = "MultiMedia19 Channel2",
4985 .info = msm_pcm_channel_input_be_info,
4986 .get = msm_pcm_channel_input_be_get,
4987 .put = msm_pcm_channel_input_be_put,
4988 .private_value = (unsigned long)&(mm19_ch2_enum)
4989 },
4990 {
4991 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4992 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4993 .name = "MultiMedia28 Channel1",
4994 .info = msm_pcm_channel_input_be_info,
4995 .get = msm_pcm_channel_input_be_get,
4996 .put = msm_pcm_channel_input_be_put,
4997 .private_value = (unsigned long)&(mm28_ch1_enum)
4998 },
4999 {
5000 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5001 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5002 .name = "MultiMedia28 Channel2",
5003 .info = msm_pcm_channel_input_be_info,
5004 .get = msm_pcm_channel_input_be_get,
5005 .put = msm_pcm_channel_input_be_put,
5006 .private_value = (unsigned long)&(mm28_ch2_enum)
5007 },
5008 {
5009 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5010 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5011 .name = "MultiMedia29 Channel1",
5012 .info = msm_pcm_channel_input_be_info,
5013 .get = msm_pcm_channel_input_be_get,
5014 .put = msm_pcm_channel_input_be_put,
5015 .private_value = (unsigned long)&(mm29_ch1_enum)
5016 },
5017 {
5018 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5019 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5020 .name = "MultiMedia29 Channel2",
5021 .info = msm_pcm_channel_input_be_info,
5022 .get = msm_pcm_channel_input_be_get,
5023 .put = msm_pcm_channel_input_be_put,
5024 .private_value = (unsigned long)&(mm29_ch2_enum)
5025 },
5026 {
5027 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5028 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305029 .name = "MultiMedia30 Channel1",
5030 .info = msm_pcm_channel_input_be_info,
5031 .get = msm_pcm_channel_input_be_get,
5032 .put = msm_pcm_channel_input_be_put,
5033 .private_value = (unsigned long)&(mm30_ch1_enum)
5034 },
5035 {
5036 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5037 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5038 .name = "MultiMedia30 Channel2",
5039 .info = msm_pcm_channel_input_be_info,
5040 .get = msm_pcm_channel_input_be_get,
5041 .put = msm_pcm_channel_input_be_put,
5042 .private_value = (unsigned long)&(mm30_ch2_enum)
5043 },
5044 {
5045 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5046 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305047 .name = "MultiMedia1 Output Channel Map",
5048 .info = msm_pcm_channel_output_map_info,
5049 .get = msm_pcm_channel_output_map_get,
5050 .put = msm_pcm_channel_output_map_put,
5051 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5052 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5053 },
5054 {
5055 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5056 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5057 .name = "MultiMedia2 Output Channel Map",
5058 .info = msm_pcm_channel_output_map_info,
5059 .get = msm_pcm_channel_output_map_get,
5060 .put = msm_pcm_channel_output_map_put,
5061 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5062 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5063 },
5064 {
5065 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5066 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5067 .name = "MultiMedia3 Output Channel Map",
5068 .info = msm_pcm_channel_output_map_info,
5069 .get = msm_pcm_channel_output_map_get,
5070 .put = msm_pcm_channel_output_map_put,
5071 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5072 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5073 },
5074 {
5075 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5076 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5077 .name = "MultiMedia4 Output Channel Map",
5078 .info = msm_pcm_channel_output_map_info,
5079 .get = msm_pcm_channel_output_map_get,
5080 .put = msm_pcm_channel_output_map_put,
5081 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5082 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5083 },
5084 {
5085 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5086 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5087 .name = "MultiMedia5 Output Channel Map",
5088 .info = msm_pcm_channel_output_map_info,
5089 .get = msm_pcm_channel_output_map_get,
5090 .put = msm_pcm_channel_output_map_put,
5091 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5092 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5093 },
5094 {
5095 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5096 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5097 .name = "MultiMedia6 Output Channel Map",
5098 .info = msm_pcm_channel_output_map_info,
5099 .get = msm_pcm_channel_output_map_get,
5100 .put = msm_pcm_channel_output_map_put,
5101 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5102 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5103 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305104 {
5105 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5106 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5107 .name = "MultiMedia18 Output Channel Map",
5108 .info = msm_pcm_channel_output_map_info,
5109 .get = msm_pcm_channel_output_map_get,
5110 .put = msm_pcm_channel_output_map_put,
5111 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5112 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5113 },
5114 {
5115 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5116 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5117 .name = "MultiMedia19 Output Channel Map",
5118 .info = msm_pcm_channel_output_map_info,
5119 .get = msm_pcm_channel_output_map_get,
5120 .put = msm_pcm_channel_output_map_put,
5121 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5122 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5123 },
5124 {
5125 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5126 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5127 .name = "MultiMedia28 Output Channel Map",
5128 .info = msm_pcm_channel_output_map_info,
5129 .get = msm_pcm_channel_output_map_get,
5130 .put = msm_pcm_channel_output_map_put,
5131 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5132 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5133 },
5134 {
5135 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5136 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5137 .name = "MultiMedia29 Output Channel Map",
5138 .info = msm_pcm_channel_output_map_info,
5139 .get = msm_pcm_channel_output_map_get,
5140 .put = msm_pcm_channel_output_map_put,
5141 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5142 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5143 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305144 {
5145 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5146 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5147 .name = "MultiMedia30 Output Channel Map",
5148 .info = msm_pcm_channel_output_map_info,
5149 .get = msm_pcm_channel_output_map_get,
5150 .put = msm_pcm_channel_output_map_put,
5151 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5152 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5153 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305155
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5157 struct snd_ctl_elem_value *ucontrol)
5158{
5159 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5160 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5161 ucontrol->value.integer.value[0]);
5162 return 0;
5163}
5164
5165static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5166 struct snd_ctl_elem_value *ucontrol)
5167{
5168 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5169 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5170 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5171 return 0;
5172}
5173
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305174static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5175 struct snd_ctl_elem_value *ucontrol)
5176{
5177 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5178 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5179 ucontrol->value.integer.value[0]);
5180 return 0;
5181}
5182
5183static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5184 struct snd_ctl_elem_value *ucontrol)
5185{
5186 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5187 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5188 __func__, msm_ec_ref_ch_downmixed);
5189 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5190 return 0;
5191}
5192
5193static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5194 struct snd_ctl_elem_value *ucontrol)
5195{
5196 int i = 0, ret = 0;
5197 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5198 int out_channel_idx = ((struct soc_multi_mixer_control *)
5199 kcontrol->private_value)->shift;
5200
5201 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5202 weights[i] = ucontrol->value.integer.value[i];
5203
5204 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5205 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5206 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5207 return ret;
5208}
5209
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305211 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5212 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213
5214static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5215 struct snd_ctl_elem_value *ucontrol)
5216{
5217 switch (msm_ec_ref_bit_format) {
5218 case SNDRV_PCM_FORMAT_S24_LE:
5219 ucontrol->value.integer.value[0] = 2;
5220 break;
5221 case SNDRV_PCM_FORMAT_S16_LE:
5222 ucontrol->value.integer.value[0] = 1;
5223 break;
5224 default:
5225 ucontrol->value.integer.value[0] = 0;
5226 break;
5227 }
5228 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5229 __func__, ucontrol->value.integer.value[0]);
5230 return 0;
5231}
5232
5233static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5234 struct snd_ctl_elem_value *ucontrol)
5235{
5236 u16 bit_width = 0;
5237
5238 switch (ucontrol->value.integer.value[0]) {
5239 case 2:
5240 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5241 break;
5242 case 1:
5243 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5244 break;
5245 default:
5246 msm_ec_ref_bit_format = 0;
5247 break;
5248 }
5249
5250 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5251 bit_width = 16;
5252 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5253 bit_width = 24;
5254
5255 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5256 __func__, msm_ec_ref_bit_format);
5257 adm_ec_ref_rx_bit_width(bit_width);
5258 return 0;
5259}
5260
5261static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5262
5263static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5264 struct snd_ctl_elem_value *ucontrol)
5265{
5266 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5267 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5268 __func__, ucontrol->value.integer.value[0]);
5269 return 0;
5270}
5271
5272static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5273 struct snd_ctl_elem_value *ucontrol)
5274{
5275 switch (ucontrol->value.integer.value[0]) {
5276 case 0:
5277 msm_ec_ref_sampling_rate = 0;
5278 break;
5279 case 1:
5280 msm_ec_ref_sampling_rate = 8000;
5281 break;
5282 case 2:
5283 msm_ec_ref_sampling_rate = 16000;
5284 break;
5285 case 3:
5286 msm_ec_ref_sampling_rate = 32000;
5287 break;
5288 case 4:
5289 msm_ec_ref_sampling_rate = 44100;
5290 break;
5291 case 5:
5292 msm_ec_ref_sampling_rate = 48000;
5293 break;
5294 case 6:
5295 msm_ec_ref_sampling_rate = 96000;
5296 break;
5297 case 7:
5298 msm_ec_ref_sampling_rate = 192000;
5299 break;
5300 case 8:
5301 msm_ec_ref_sampling_rate = 384000;
5302 break;
5303 default:
5304 msm_ec_ref_sampling_rate = 48000;
5305 break;
5306 }
5307 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5308 __func__, msm_ec_ref_sampling_rate);
5309 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5310 return 0;
5311}
5312
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305313static int get_ec_ref_port_id(int value, int *index)
5314{
5315 int port_id;
5316
5317 switch (value) {
5318 case 0:
5319 *index = 0;
5320 port_id = AFE_PORT_INVALID;
5321 break;
5322 case 1:
5323 *index = 1;
5324 port_id = SLIMBUS_0_RX;
5325 break;
5326 case 2:
5327 *index = 2;
5328 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5329 break;
5330 case 3:
5331 *index = 3;
5332 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5333 break;
5334 case 4:
5335 *index = 4;
5336 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5337 break;
5338 case 5:
5339 *index = 5;
5340 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5341 break;
5342 case 6:
5343 *index = 6;
5344 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5345 break;
5346 case 7:
5347 *index = 7;
5348 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5349 break;
5350 case 9:
5351 *index = 9;
5352 port_id = SLIMBUS_5_RX;
5353 break;
5354 case 10:
5355 *index = 10;
5356 port_id = SLIMBUS_1_TX;
5357 break;
5358 case 11:
5359 *index = 11;
5360 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5361 break;
5362 case 12:
5363 *index = 12;
5364 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5365 break;
5366 case 13:
5367 *index = 13;
5368 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5369 break;
5370 case 14:
5371 *index = 14;
5372 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5373 break;
5374 case 15:
5375 *index = 15;
5376 port_id = SLIMBUS_6_RX;
5377 break;
5378 case 16:
5379 *index = 16;
5380 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5381 break;
5382 case 17:
5383 *index = 17;
5384 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5385 break;
5386 case 18:
5387 *index = 18;
5388 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5389 break;
5390 case 19:
5391 *index = 19;
5392 port_id = AFE_PORT_ID_USB_RX;
5393 break;
5394 case 20:
5395 *index = 20;
5396 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5397 break;
5398 case 21:
5399 *index = 21;
5400 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5401 break;
5402 case 22:
5403 *index = 22;
5404 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5405 break;
5406 case 23:
5407 *index = 23;
5408 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5409 break;
5410 case 24:
5411 *index = 24;
5412 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5413 break;
5414 case 25:
5415 *index = 25;
5416 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5417 break;
5418 case 26:
5419 *index = 26;
5420 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5421 break;
5422 case 27:
5423 *index = 27;
5424 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5425 break;
5426 case 28:
5427 *index = 28;
5428 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5429 break;
5430 case 29:
5431 *index = 29;
5432 port_id = SLIMBUS_7_RX;
5433 break;
5434 case 30:
5435 *index = 30;
5436 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5437 break;
5438 case 31:
5439 *index = 31;
5440 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5441 break;
5442 case 32:
5443 *index = 32;
5444 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5445 break;
5446 case 33:
5447 *index = 33;
5448 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5449 break;
5450 case 34:
5451 *index = 34;
5452 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5453 break;
5454 case 35:
5455 *index = 35;
5456 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5457 break;
5458 case 36:
5459 *index = 36;
5460 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5461 break;
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005462 case 37:
5463 *index = 37;
5464 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5465 break;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305466 default:
5467 *index = 0; /* NONE */
5468 pr_err("%s: Invalid value %d\n", __func__, value);
5469 port_id = AFE_PORT_INVALID;
5470 break;
5471 }
5472
5473 return port_id;
5474}
5475
5476static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5477 struct snd_ctl_elem_value *ucontrol)
5478{
5479 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5480 mutex_lock(&routing_lock);
5481 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5482 mutex_unlock(&routing_lock);
5483
5484 return 0;
5485}
5486
5487static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5488 struct snd_ctl_elem_value *ucontrol)
5489{
5490 int value = ucontrol->value.integer.value[0];
5491
5492 mutex_lock(&routing_lock);
5493 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5494 &afe_loopback_tx_port_index);
5495 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5496 __func__, afe_loopback_tx_port_index);
5497 mutex_unlock(&routing_lock);
5498
5499 return 0;
5500}
5501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305502static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5503 "32000", "44100", "48000", "96000", "192000", "384000"};
5504
5505static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005506 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5507 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5508 ec_ref_bit_format_text),
5509 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305510};
5511
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5513 "PRI_MI2S_TX", "SEC_MI2S_TX",
5514 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5515 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5516 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5517 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305518 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5519 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005520 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305521 "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 -07005522 "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 -07005523 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305524};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305525
5526static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5527 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5528};
5529
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305530static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5531 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5532 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5533 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5534 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5535 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5536 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5537 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5538 msm_route_ec_ref_params_enum[0],
5539 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5540 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5541 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5542 msm_ec_ref_chmixer_weights_put),
5543 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5544 1, 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 Ch3", SND_SOC_NOPM,
5547 2, 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 Ch4", SND_SOC_NOPM,
5550 3, 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 Ch5", SND_SOC_NOPM,
5553 4, 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 Ch6", SND_SOC_NOPM,
5556 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5557 msm_ec_ref_chmixer_weights_put),
5558 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5559 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5560};
5561
5562static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5563 struct snd_ctl_elem_value *ucontrol)
5564{
5565 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5566 mutex_lock(&routing_lock);
5567 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5568 mutex_unlock(&routing_lock);
5569
5570 return 0;
5571}
5572
5573static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5574 struct snd_ctl_elem_value *ucontrol)
5575{
5576 int value = ucontrol->value.integer.value[0];
5577 struct snd_soc_dapm_widget *widget =
5578 snd_soc_dapm_kcontrol_widget(kcontrol);
5579 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5580 struct snd_soc_dapm_update *update = NULL;
5581
5582 mutex_lock(&routing_lock);
5583 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5584 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5585 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5586 __func__, msm_route_ec_ref_rx);
5587 mutex_unlock(&routing_lock);
5588
5589 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5590 msm_route_ec_ref_rx, e, update);
5591 return 0;
5592}
5593
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5595 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5596 msm_route_ec_ref_rx_enum[0],
5597 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5598
5599static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5600 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5601 msm_route_ec_ref_rx_enum[0],
5602 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5603
5604static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5605 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5606 msm_route_ec_ref_rx_enum[0],
5607 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5608
5609static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5610 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5611 msm_route_ec_ref_rx_enum[0],
5612 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5613
5614static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5615 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5616 msm_route_ec_ref_rx_enum[0],
5617 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5618
5619static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5620 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5621 msm_route_ec_ref_rx_enum[0],
5622 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5623
5624static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5625 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5626 msm_route_ec_ref_rx_enum[0],
5627 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5628
5629static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5630 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5631 msm_route_ec_ref_rx_enum[0],
5632 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5633
Asish Bhattacharya34504582017-08-08 12:55:01 +05305634static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5635 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5636 msm_route_ec_ref_rx_enum[0],
5637 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5638
Laxminath Kasam38070be2017-08-17 18:21:59 +05305639static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5640 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5641 msm_route_ec_ref_rx_enum[0],
5642 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305644static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5645 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5646 msm_route_ec_ref_rx_enum[0],
5647 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5648
5649static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5650 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5651 msm_route_ec_ref_rx_enum[0],
5652 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5653
5654static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5655 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5656 msm_route_ec_ref_rx_enum[0],
5657 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5658
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305659static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5660 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5661 msm_route_ec_ref_rx_enum[0],
5662 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5663
5664static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5665 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5666 msm_route_ec_ref_rx_enum[0],
5667 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5668
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305669static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5670 struct snd_ctl_elem_value *ucontrol)
5671{
5672 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5673
5674 mutex_lock(&routing_lock);
5675 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5676 mutex_unlock(&routing_lock);
5677 return 0;
5678}
5679
5680static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5681 struct snd_ctl_elem_value *ucontrol)
5682{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305683 struct snd_soc_dapm_widget *widget =
5684 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685 int mux = ucontrol->value.enumerated.item[0];
5686 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5687 int ret = 1;
5688 bool state = true;
5689 uint16_t ext_ec_ref_port_id;
5690 struct snd_soc_dapm_update *update = NULL;
5691
5692 if (mux >= e->items) {
5693 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5694 return -EINVAL;
5695 }
5696
5697 mutex_lock(&routing_lock);
5698 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5699
5700 switch (msm_route_ext_ec_ref) {
5701 case EXT_EC_REF_PRI_MI2S_TX:
5702 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5703 break;
5704 case EXT_EC_REF_SEC_MI2S_TX:
5705 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5706 break;
5707 case EXT_EC_REF_TERT_MI2S_TX:
5708 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5709 break;
5710 case EXT_EC_REF_QUAT_MI2S_TX:
5711 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5712 break;
5713 case EXT_EC_REF_QUIN_MI2S_TX:
5714 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5715 break;
5716 case EXT_EC_REF_SLIM_1_TX:
5717 ext_ec_ref_port_id = SLIMBUS_1_TX;
5718 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005719 case EXT_EC_REF_PRI_TDM_TX:
5720 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5721 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005722 case EXT_EC_REF_SEC_TDM_TX:
5723 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5724 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 case EXT_EC_REF_NONE:
5726 default:
5727 ext_ec_ref_port_id = AFE_PORT_INVALID;
5728 state = false;
5729 break;
5730 }
5731
5732 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5733 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5734
5735 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5736 mutex_unlock(&routing_lock);
5737 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5738 update);
5739 } else {
5740 ret = -EINVAL;
5741 mutex_unlock(&routing_lock);
5742 }
5743 return ret;
5744}
5745
5746static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5747 "SEC_MI2S_TX", "TERT_MI2S_TX",
5748 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005749 "SLIM_1_TX", "PRI_TDM_TX",
5750 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751
5752static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5753 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5754};
5755
5756static const struct snd_kcontrol_new voc_ext_ec_mux =
5757 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5758 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5759
5760
5761static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005778 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305780 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005782 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005786 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305788 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005790 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5791 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305792 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005794 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5795 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305796 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005798 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5799 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305800 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005802 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5803 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305804 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005806 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5807 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305808 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005810 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5811 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305812 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005814 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5815 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305816 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005818 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5819 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305820 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005822 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5823 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005826 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5827 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305828 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005830 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5831 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305832 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005834 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5835 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305836 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5837 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305838 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5839 MSM_BACKEND_DAI_PRI_I2S_RX,
5840 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005842 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5843 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305844 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005846 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5847 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305848 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5849 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305850 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5851 MSM_BACKEND_DAI_PRI_I2S_RX,
5852 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5853 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854};
5855
5856static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005857 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005861 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5862 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305863 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005865 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005869 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5870 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305871 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005873 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5874 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005877 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5878 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305879 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005881 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5882 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305883 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005885 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5886 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005889 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5890 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305891 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005893 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5894 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305895 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005897 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5898 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305899 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005901 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5902 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305903 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005905 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5906 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305907 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005909 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5910 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305911 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005913 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5914 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305915 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005917 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5918 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005921 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5922 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305923 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005925 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5926 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305927 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005929 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5930 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305931 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5932 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305933 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5934 MSM_BACKEND_DAI_SEC_I2S_RX,
5935 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005937 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5938 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305939 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005941 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5942 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305943 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305945 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5946 MSM_BACKEND_DAI_SEC_I2S_RX,
5947 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949};
5950
Ralf Herzc8701f72018-06-20 11:37:35 +02005951static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005952 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005953 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305954 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005956 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005957 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005960 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005961 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005964 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005965 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005968 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005969 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305970 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005972 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005973 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305974 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005976 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005977 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305978 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005980 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005981 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305982 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005984 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005985 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305986 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005988 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005989 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305990 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005992 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005993 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305994 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005996 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005997 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305998 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006000 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006001 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306002 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006004 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006005 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306006 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006008 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006009 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306010 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006012 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006013 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306014 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006016 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006017 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306018 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006020 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006021 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306022 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006024 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006025 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306026 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306028 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6030 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006032 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006033 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006036 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006037 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6038 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306040 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6042 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006044};
6045
6046static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6048 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6050 msm_routing_put_audio_mixer),
6051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6052 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6054 msm_routing_put_audio_mixer),
6055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6056 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6058 msm_routing_put_audio_mixer),
6059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6060 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6062 msm_routing_put_audio_mixer),
6063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6064 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6066 msm_routing_put_audio_mixer),
6067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6068 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6070 msm_routing_put_audio_mixer),
6071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6072 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6074 msm_routing_put_audio_mixer),
6075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6076 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6078 msm_routing_put_audio_mixer),
6079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6080 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6082 msm_routing_put_audio_mixer),
6083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6084 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6086 msm_routing_put_audio_mixer),
6087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6088 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6090 msm_routing_put_audio_mixer),
6091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
6095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6113 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6117 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6121 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306123 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6125 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006127 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6129 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306133 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306135 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6137 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306139};
6140
6141static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006142 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006146 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6147 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306148 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006150 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6151 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006154 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6155 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006158 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6159 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006162 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006166 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306168 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006170 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306172 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006174 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306176 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006178 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006182 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306184 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006186 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306188 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006190 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306192 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006194 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306196 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006198 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306200 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006202 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306206 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6208 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306210};
6211
6212static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6218 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6222 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6226 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006277 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306279 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006281 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306283 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006285 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306287 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306289 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6291 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006293 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306295 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006297 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306299 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306301 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6303 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306305};
6306
6307static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006308 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306310 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006312 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006316 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306318 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006320 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006324 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306326 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006328 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006332 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306334 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006336 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306338 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006340 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306342 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006344 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006348 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306350 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006352 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306354 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006356 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306358 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006360 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006364 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306366 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006368 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306370 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006372 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306374 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006376 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306378 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006380 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306382 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306384 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6386 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006388 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006392 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306394 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306396 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6398 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306400};
6401
6402static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006403 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306405 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006407 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006411 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006415 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006419 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006423 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006427 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306429 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006431 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006435 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006439 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306441 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006443 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306445 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006447 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006451 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006455 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006459 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006463 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306465 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006467 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306469 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006471 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306473 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006475 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306477 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306479 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_MI2S_RX,
6481 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006483 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306485 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006487 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306489 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306491 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_MI2S_RX,
6493 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306495};
6496
6497static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006498 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006502 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306504 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006506 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306508 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006510 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306512 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006514 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306574 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6576 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006582 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306584 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306586 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6588 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590};
6591
6592static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006593 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306595 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006597 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006601 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306603 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006605 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306607 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006609 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006613 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306615 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006617 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306619 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006621 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306623 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006625 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306627 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006629 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006633 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306635 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006637 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306639 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006641 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306643 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006645 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306647 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006649 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306651 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006653 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306655 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006657 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6658 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306659 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006661 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6662 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306663 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006665 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6666 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6668 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306669 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6670 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6671 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006673 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6674 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306675 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006677 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6678 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306679 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6680 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306681 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6682 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6683 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6684 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306686};
6687
Karthikeyan Manic3700752019-03-11 18:33:53 -07006688static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6690 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6692 msm_routing_put_audio_mixer),
6693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6694 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6696 msm_routing_put_audio_mixer),
6697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6698 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6700 msm_routing_put_audio_mixer),
6701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
6705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
6709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
6713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
6717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
6721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
6725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
6729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
6733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6734 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6736 msm_routing_put_audio_mixer),
6737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6738 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6740 msm_routing_put_audio_mixer),
6741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6742 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6744 msm_routing_put_audio_mixer),
6745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6746 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6748 msm_routing_put_audio_mixer),
6749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6750 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6752 msm_routing_put_audio_mixer),
6753 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6754 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6755 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6756 msm_routing_put_audio_mixer),
6757 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6758 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6759 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6760 msm_routing_put_audio_mixer),
6761 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6762 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6763 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6764 msm_routing_put_audio_mixer),
6765 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6766 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6767 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6768 msm_routing_put_audio_mixer),
6769 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6770 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6771 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6772 msm_routing_put_audio_mixer),
6773 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6774 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6775 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6776 msm_routing_put_audio_mixer),
6777
6778};
6779
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006781 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6782 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006785 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6786 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306787 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006789 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6790 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306791 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006793 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6794 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306795 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006797 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6798 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306799 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006801 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6802 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306803 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006805 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306849 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6851 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306861 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6863 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306865};
6866
6867static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006868 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
6872};
6873
6874static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006875 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306877 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006879 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306881 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006883 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306885 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006887 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6888 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006891 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6892 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306893 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006895 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6896 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306897 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006899 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6900 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306901 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006903 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6904 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306905 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006907 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6908 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306909 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006911 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6912 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006915 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6916 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306917 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006919 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6920 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306921 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006923 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6924 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306925 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006927 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6928 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306929 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006931 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006935 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006939 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006943 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006947 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306951 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6953 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006959 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306963 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6965 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967};
6968
6969static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006986 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6987 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306988 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006998 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007010 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007014 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007018 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007022 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007026 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007030 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007034 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007038 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307046 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_PRI_MI2S_RX,
7048 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007050 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007054 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307058 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_PRI_MI2S_RX,
7060 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05307062 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_PRI_MI2S_RX,
7064 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066};
7067
7068static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007077 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007105 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007129 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
7133};
7134
7135static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007144 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007152 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007156 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007160 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007172 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
7200};
7201
Ralf Herz29e07132019-07-26 15:15:21 +02007202static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7203 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7205 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
7207 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7209 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
7211 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
7215 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7217 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
7219 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7221 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
7223 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7225 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
7227 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7229 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
7231 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7233 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
7235 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7237 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
7239 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7241 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
7243 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7245 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
7247 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7249 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
7251 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7253 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
7255 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7257 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
7259 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7261 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
7263 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7265 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
7267 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7269 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
7271 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7273 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
7275 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7277 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
7279 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7281 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
7283 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7285 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
7287 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7289 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
7291
7292};
7293
7294static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7295 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7297 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
7299 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7301 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
7303 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7305 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
7307 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7309 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
7311 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
7315 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7317 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
7319 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7321 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
7323 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
7327 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7329 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
7331 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7333 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
7335 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7337 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
7339 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7341 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
7343 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7345 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
7347 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7349 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
7351 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7353 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
7355 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7357 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
7359 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7361 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
7363 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7365 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
7367 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7369 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
7371 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7373 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
7375 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7377 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
7379 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7381 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
7383};
7384
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007386 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007390 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7391 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007394 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7395 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007398 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7399 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007434 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007446 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007450 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307462 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_HDMI_RX,
7464 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007466 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007470 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307472 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307474 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7475 MSM_BACKEND_DAI_HDMI_RX,
7476 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7477 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478};
7479
7480static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007509 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007513 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007517 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007521 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007525 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007529 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007533 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307535 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007537 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7538 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307539 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007541 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7542 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307543 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7544 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307545 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7546 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7547 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7548 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549};
7550
Karthikeyan Mani57550082018-05-03 18:43:58 -07007551static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7552 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7554 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
7556 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7558 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
7560 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7562 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
7564 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7566 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
7568 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7570 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
7572 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7574 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
7576 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7578 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
7580 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7582 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
7584 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7586 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
7588 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7590 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
7592 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7594 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
7596 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7598 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
7600 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7602 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
7604 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7606 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
7608 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7610 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
7612 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7613 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7614 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7615 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307616 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7617 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7618 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7619 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007620};
7621
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307622 /* incall music delivery mixer */
7623static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007624 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7625 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007628 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7629 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7631 msm_routing_put_audio_mixer),
Anurag Chouhanb2a024a2019-10-09 11:39:08 +05307632 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7633 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
7634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007636 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7637 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307638 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007640 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7641 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7643 msm_routing_put_audio_mixer),
7644};
7645
7646static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007655 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
7663};
7664
7665static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
7682};
7683
7684static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307749 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7751 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307753};
7754
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307755static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7756 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
7760 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7762 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
7764 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7766 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
7768 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7770 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
7772 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7774 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
7776 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
7780 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7782 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
7784 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7786 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
7788 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7790 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
7792 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7794 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
7796 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7798 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
7800 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7802 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
7804 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7806 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
7808 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7810 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
7812 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7814 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
7816 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307820 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7822 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307824};
7825
7826static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
7831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
7835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
7839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
7843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
7847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
7851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
7855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
7859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
7863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
7867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
7871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
7875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
7879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
7883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
7887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307891 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7893 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307895};
7896
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307897static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
7902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
7906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
7910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
7914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
7918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
7922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
7926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
7930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
7934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
7938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
7942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
7946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
7950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
7954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
7958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307962 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7964 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307966};
7967
7968static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7969 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7971 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
7973 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7975 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
7977 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7979 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
7981 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7983 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
7985 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
7989 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7991 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
7993 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7995 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
7997 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
8001 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8003 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
8005 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8007 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
8009 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8011 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
8013 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8015 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
8017 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8019 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
8021 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8023 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
8025 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8027 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
8029 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8031 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308033 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8035 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308037};
8038
8039static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
8040 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8042 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
8048 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8050 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
8052 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
8056 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8058 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
8060 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8062 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
8064 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8066 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
8068 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8070 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
8072 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
8076 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8078 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
8080 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8082 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
8084 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8086 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
8088 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8090 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
8092 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8094 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
8096 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8098 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
8100 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308104 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8106 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308108};
8109
8110static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8111 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
8115 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8117 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
8119 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
8123 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
8127 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8129 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
8131 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8133 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
8135 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8137 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
8139 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8141 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
8143 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
8147 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
8151 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8153 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
8155 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8157 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
8159 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8161 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
8163 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8165 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
8167 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8169 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
8171 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8173 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308175 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8177 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308179};
8180
8181static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8182 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8184 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
8186 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8188 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
8190 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8192 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
8194 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8196 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
8198 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8200 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
8202 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8204 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
8206 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8208 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
8210 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8212 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
8214 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8216 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
8218 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8220 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
8222 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8224 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
8226 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8228 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
8230 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8232 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
8234 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8236 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
8238 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8240 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
8242 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308246 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8248 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308250};
8251
8252static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8253 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
8257 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8259 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
8261 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8263 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
8265 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8267 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
8269 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8271 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
8273 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8275 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
8277 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8279 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
8281 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8283 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
8285 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8287 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
8289 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8291 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
8293 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8295 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
8297 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8299 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
8301 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8303 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
8305 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8307 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
8309 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8311 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
8313 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8315 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308317 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8319 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308321};
8322
8323static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8324 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8326 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
8328 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
8332 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8334 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
8336 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8338 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
8340 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8342 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
8344 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
8348 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8350 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
8352 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8354 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
8356 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8358 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
8360 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8362 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
8364 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8366 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
8368 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8370 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
8372 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8374 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
8376 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8378 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
8380 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8382 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
8384 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8386 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308388 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8390 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308392};
8393
8394static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8395 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8397 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
8399 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8401 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
8403 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8405 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
8407 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8409 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
8411 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8413 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
8415 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8417 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
8419 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8421 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
8423 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
8427 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
8431 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8433 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
8435 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8437 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
8439 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8441 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
8443 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8445 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
8447 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8449 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
8451 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8453 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
8455 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8457 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308459 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8461 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308463};
8464
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008522 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308530 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8532 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534};
8535
Surendar Karka3ef3d812018-09-28 18:52:35 +05308536static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8537 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
8541 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8543 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
8545 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
8549 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
8553 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
8557 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
8561 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8563 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
8565 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
8569 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8571 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
8573 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
8577 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8579 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
8581 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8583 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
8585 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8587 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
8589 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8591 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
8593 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8595 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
8597 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
8601 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8603 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
8605};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308671 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_USB_RX,
8673 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675};
8676
8677static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308754 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8756 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308766 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8768 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770};
8771
8772static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308837 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8839 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841};
8842
8843static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308920 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_INT_FM_RX,
8922 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308932 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_INT_FM_RX,
8934 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936};
8937
8938static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309015 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_AFE_PCM_RX,
9017 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309027 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_AFE_PCM_RX,
9029 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031};
9032
9033static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009110 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_AUXPCM_RX,
9112 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309114 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_AUXPCM_RX,
9116 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309126 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_AUXPCM_RX,
9128 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130};
9131
9132static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009209 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9211 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309213 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9215 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309225 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9227 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229};
9230
9231static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009244 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009248 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309250 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009252 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009256 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9257 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309258 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009260 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9261 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309262 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009264 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9265 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309266 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009268 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309270 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009272 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9273 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309274 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009276 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9277 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309278 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009280 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9281 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309282 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009284 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9285 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309286 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009288 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9289 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309290 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009292 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9293 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309294 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9295 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309296 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9297 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9298 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9299 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309300};
9301
9302static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009323 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009327 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009331 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009335 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009339 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309341 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009343 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009347 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009351 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309353 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009355 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9356 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309357 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009359 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9360 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309361 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009363 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9364 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309365 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9366 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309367 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9368 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9369 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9370 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371};
9372
Rohit Kumara5077932017-09-10 22:05:05 +05309373static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309438 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9440 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309442};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009443
9444static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9445 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9447 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
9449 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9451 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
9453 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9455 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
9457 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9459 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
9461 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9463 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
9465 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9467 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
9469 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9471 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
9473 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9475 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
9477 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9479 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
9481 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9483 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
9485 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9487 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
9489 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9491 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
9493 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9495 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
9497 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9499 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
9501 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9503 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
9505 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9507 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
9509 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9511 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
9513};
9514
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009580 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9582 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009584 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9585 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9586 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9587 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588};
9589
9590static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009627 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309629 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009631 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309633 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009635 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009639 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009643 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309645 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009647 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309649 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009651 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009655 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9657 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009659 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9661 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663};
9664
9665static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009718 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009722 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309724 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009726 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009730 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9732 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009734 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9736 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738};
9739
9740static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009761 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009765 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009769 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309771 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009805 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009809 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9811 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813};
9814
9815static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009840 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
9880};
9881
9882static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009903 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309905 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009907 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309909 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009911 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309913 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009915 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309917 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009919 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309921 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009923 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309925 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009927 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309929 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009931 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309933 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009935 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309937 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009939 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309941 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009943 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309945 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009947 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9949 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009951 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9953 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955};
9956
9957static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009974 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009978 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309980 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009982 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309984 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009986 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9987 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309988 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009990 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309992 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009994 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309996 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010000 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010010 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010012 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010014 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010016 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010018 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010022 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10024 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010026 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10028 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030};
10031
10032static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010053 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010055 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010057 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010059 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010061 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010065 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010067 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010069 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010071 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010073 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010075 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010085 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010087 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010089 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010091 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010097 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10099 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010101 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10103 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105};
10106
10107static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10165 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10169 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10171 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010172 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10173 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10174 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10175 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010176 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10178 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180};
10181
10182static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010211 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010213 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010215 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010217 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010219 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010221 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010223 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010225 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010227 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010231 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010235 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010239 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010243 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
10247};
10248
10249static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010314 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10316 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010318 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10320 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322};
10323
10324static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010357 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010359 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010361 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010363 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010365 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010367 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010369 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010371 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010373 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010377 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010379 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
10389};
10390
10391static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010396 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010400 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010402 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010404 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010406 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010426 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010428 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010432 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010436 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010438 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010440 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010442 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010444 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010448 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010450 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010452 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010454 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010456 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10458 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010460 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10462 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464};
10465
10466static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010519 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010521 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010531 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10533 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010535 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10537 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539};
10540
10541static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010588 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010592 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010596 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010598 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010600 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010606 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10608 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010610 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10612 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614};
10615
10616static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010665 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010667 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010669 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010671 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010681 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10683 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010685 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10687 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689};
10690
10691static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010760 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10762 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010764 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10766 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768};
10769
10770static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
10835};
10836
10837static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010880 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010892 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010896 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010906 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10908 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010910 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10912 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914};
10915
10916static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010925 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010937 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010939 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010941 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010943 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010945 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010949 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010953 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010961 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010963 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010965 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010983 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010985 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10987 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010989 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10991 MSM_FRONTEND_DAI_MULTIMEDIA22, 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_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
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_3,
11070 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011072};
11073
Rohit Kumara5077932017-09-10 22:05:05 +053011074static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011079 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011081 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011083 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011121 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011123 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011125 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011143 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11145 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011147 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11149 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011151};
11152
11153static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
11218};
11219
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011220static const struct snd_kcontrol_new quin_tdm_tx_1_mixer_controls[] = {
11221 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11224 msm_routing_put_audio_mixer),
11225 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11226 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11227 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11228 msm_routing_put_audio_mixer),
11229 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11230 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11231 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
11233 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11235 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
11241 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11243 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
11245 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11247 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
11249 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11251 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
11253 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11255 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
11257 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11259 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
11261 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11263 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
11265 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11267 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11268 msm_routing_put_audio_mixer),
11269 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11271 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
11273 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11275 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
11277 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11279 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
11281 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11283 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
11285};
11286
Rohit Kumara5077932017-09-10 22:05:05 +053011287static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011288 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11289 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011290 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011292 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11293 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011294 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011296 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011298 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011300 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11301 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011302 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011304 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11305 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011306 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011308 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011310 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011312 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011314 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011316 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011318 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011320 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011322 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011324 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011326 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011328 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011330 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011332 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011334 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011336 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011338 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011340 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011342 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011344 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011346 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011348 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011350 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011352 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011354 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011356 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11358 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011360 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11362 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011364};
11365
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011366static const struct snd_kcontrol_new quin_tdm_tx_2_mixer_controls[] = {
11367 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11369 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
11371 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11373 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
11375 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11377 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
11379 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11381 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
11383 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11385 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
11387 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11389 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
11391 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11393 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
11395 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11397 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
11399 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11401 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
11403 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11405 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
11407 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11409 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
11411 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11413 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
11415 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11417 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
11419 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11421 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11425 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11429 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
11431};
11432
Rohit Kumara5077932017-09-10 22:05:05 +053011433static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011434 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011438 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011442 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011446 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011450 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011452 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011454 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011458 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011460 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011462 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011464 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011466 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011470 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011474 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011476 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011478 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011480 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011482 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011484 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011486 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011488 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011490 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011492 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011494 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011498 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011500 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011502 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11504 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011506 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11508 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011510};
11511
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011512static const struct snd_kcontrol_new quin_tdm_tx_3_mixer_controls[] = {
11513 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11515 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
11517 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11519 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
11521 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11523 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
11525 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11527 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
11529 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
11533 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11535 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
11537 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11539 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
11541 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11543 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
11545 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11547 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
11549 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11551 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
11553 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11555 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
11557 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11559 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11563 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
11565 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11567 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11571 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11575 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577};
11578
Rohit Kumara5077932017-09-10 22:05:05 +053011579static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011580 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011582 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011590 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011600 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011602 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011604 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011606 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011608 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011612 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011614 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011616 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011618 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011620 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011622 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011624 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011626 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011628 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011630 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011632 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011634 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011636 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011638 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011640 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011642 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011644 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011646 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011648 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11650 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011652 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11654 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011656};
11657
Karthikeyan Manic3700752019-03-11 18:33:53 -070011658static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11660 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11662 msm_routing_put_audio_mixer),
11663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11664 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11666 msm_routing_put_audio_mixer),
11667 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11668 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11670 msm_routing_put_audio_mixer),
11671 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11673 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11674 msm_routing_put_audio_mixer),
11675 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11678 msm_routing_put_audio_mixer),
11679 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11680 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11682 msm_routing_put_audio_mixer),
11683 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11684 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11685 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11686 msm_routing_put_audio_mixer),
11687 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11688 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11694 msm_routing_put_audio_mixer),
11695 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11697 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
11699 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11701 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11702 msm_routing_put_audio_mixer),
11703 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11705 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
11707 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11709 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11713 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11714 msm_routing_put_audio_mixer),
11715 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11716 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11717 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11718 msm_routing_put_audio_mixer),
11719 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11720 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11722 msm_routing_put_audio_mixer),
11723 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11724 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11725 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11726 msm_routing_put_audio_mixer),
11727 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11729 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
11731};
11732
11733static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11734 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11736 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
11738 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
11742 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11744 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11752 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
11754 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11760 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
11762 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11764 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
11766 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11768 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
11770 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11772 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
11774 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11776 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
11778 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11780 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11784 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11788 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11792 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798};
11799
11800static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11801 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
11805 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11807 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
11809 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11823 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
11825 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11827 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
11833 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11835 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
11841 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11843 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
11845 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11847 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
11849 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11851 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11855 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11859 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11867 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873};
11874
11875static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
11880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
11884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
11888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
11892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
11896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
11900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
11904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
11908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
11912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
11916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
11920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11942 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948};
11949
11950static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11951 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11953 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
11955 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11957 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
11959 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11961 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
11963 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11965 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
11967 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11969 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
11971 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11973 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
11975 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11977 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
11979 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
11983 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11985 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
11987 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11989 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
11991 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11993 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
11995 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11997 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
11999 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12001 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
12003 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12005 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
12007 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12009 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12013 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12017 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12021 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023};
12024
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012025static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012026 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012028 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012038 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12039 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012040 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012042 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012044 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012046 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12047 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012048 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012050 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012052 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012054 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12055 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012056 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012058 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12059 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012060 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12061 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012062 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012066 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012068 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012070 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012072 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012074 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012078 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012080 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012082 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012084 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012086 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12088 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012090 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012092 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012094 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012096 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012098 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012100 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012102 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012104 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012106 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012108 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012122 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012128 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012132 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012134 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012136 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012138 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012140 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012142 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012146 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012148 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012150 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012152 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012154 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012158 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012160 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012166 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012170 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012172 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012174 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012176 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012178 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012180 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012182 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012186 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012188 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012190 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012194 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12195 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012196 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012198 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12199 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012200 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12203 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012204 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12205 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012206 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12208 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12209 msm_routing_put_audio_mixer),
12210 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12212 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12213 msm_routing_put_audio_mixer),
12214 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12215 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12216 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12217 msm_routing_put_audio_mixer),
12218 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12219 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12220 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012222 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12223 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012226 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12227 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012230 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12231 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012232 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12233 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012234 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12235 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12237 msm_routing_put_audio_mixer),
12238 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12239 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12240 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12241 msm_routing_put_audio_mixer),
12242 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12243 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12244 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12245 msm_routing_put_audio_mixer),
12246 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12247 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12248 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12249 msm_routing_put_audio_mixer),
12250 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12252 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12253 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012254 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12255 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12256 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12257 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12260 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12261 msm_routing_put_audio_mixer),
12262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12264 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12265 msm_routing_put_audio_mixer),
12266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12269 msm_routing_put_audio_mixer),
12270 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12272 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12273 msm_routing_put_audio_mixer),
12274 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12275 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12276 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12277 msm_routing_put_audio_mixer),
12278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12281 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012282 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12283 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12285 msm_routing_put_audio_mixer),
12286 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12287 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12288 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12289 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012290 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12292 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12293 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012294 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12297 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298};
12299
12300static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012307 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012317 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012319 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012325 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012327 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_FRONTEND_DAI_MULTIMEDIA2, 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_0_TX", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012341 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012345 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012347 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012349 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012357 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012359 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012379 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012381 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012385 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012387 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012395 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012407 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012409 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012411 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012413 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012415 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012417 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012419 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012421 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012425 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012429 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12432 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012433 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12435 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12436 msm_routing_put_audio_mixer),
12437 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12440 msm_routing_put_audio_mixer),
12441 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12444 msm_routing_put_audio_mixer),
12445 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12447 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012449 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012451 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012453 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12456 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012457 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12459 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12460 msm_routing_put_audio_mixer),
12461 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12463 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12464 msm_routing_put_audio_mixer),
12465 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12467 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12468 msm_routing_put_audio_mixer),
12469 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12471 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12472 msm_routing_put_audio_mixer),
12473 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12474 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12475 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12476 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012477 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12478 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12480 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012481 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12483 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12484 msm_routing_put_audio_mixer),
12485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12487 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12488 msm_routing_put_audio_mixer),
12489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12491 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12492 msm_routing_put_audio_mixer),
12493 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12496 msm_routing_put_audio_mixer),
12497 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12499 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12500 msm_routing_put_audio_mixer),
12501 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12504 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012505 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12506 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12508 msm_routing_put_audio_mixer),
12509 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12511 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12512 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012513 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12514 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12515 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12516 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012517 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12518 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12519 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12520 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012521 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12522 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12523 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12524 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012525};
12526
12527static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012532 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12534 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012538 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012570 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012572 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12574 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012580 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012586 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012588 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012590 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012592 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012626 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012628 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012630 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012632 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012634 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012636 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012638 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012640 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012644 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12645 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012646 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012648 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12649 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012650 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12657 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012658 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12661 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012662 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12665 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012666 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12669 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012670 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12671 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012672 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12674 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12675 msm_routing_put_audio_mixer),
12676 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12678 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12679 msm_routing_put_audio_mixer),
12680 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12682 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12683 msm_routing_put_audio_mixer),
12684 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12686 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12687 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012688 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12690 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12691 msm_routing_put_audio_mixer),
12692 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12694 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12695 msm_routing_put_audio_mixer),
12696 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12698 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12699 msm_routing_put_audio_mixer),
12700 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12701 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12702 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12703 msm_routing_put_audio_mixer),
12704 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12707 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012708 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12711 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12714 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12715 msm_routing_put_audio_mixer),
12716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12718 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12719 msm_routing_put_audio_mixer),
12720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12722 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12723 msm_routing_put_audio_mixer),
12724 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12725 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12726 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12727 msm_routing_put_audio_mixer),
12728 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12729 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12730 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12731 msm_routing_put_audio_mixer),
12732 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12733 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12734 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12735 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012736 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12737 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12739 msm_routing_put_audio_mixer),
12740 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12742 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12743 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012744 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12745 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12746 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12747 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748};
12749
12750static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012753 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12754 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012755 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12757 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012759 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012761 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012763 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012769 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012777 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012779 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012781 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012783 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012787 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012789 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012791 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012793 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012795 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012797 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012799 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012801 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012803 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012809 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012823 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012825 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012827 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012829 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012831 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012833 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012835 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012837 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012839 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012843 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012845 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012847 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012849 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012851 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012853 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012855 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012857 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012859 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012861 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12862 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012863 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12865 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12866 msm_routing_put_audio_mixer),
12867 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12869 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12870 msm_routing_put_audio_mixer),
12871 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12873 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12874 msm_routing_put_audio_mixer),
12875 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12877 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012879 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012881 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012883 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012885 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012887 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012889 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012891 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012893 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012895 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012897 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012899 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012901 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12902 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012903 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12905 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12906 msm_routing_put_audio_mixer),
12907 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12909 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12910 msm_routing_put_audio_mixer),
12911 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12914 msm_routing_put_audio_mixer),
12915 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12916 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12917 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12918 msm_routing_put_audio_mixer),
12919 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12920 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12921 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12922 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012923 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12924 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12925 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12926 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012927 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12928 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12930 msm_routing_put_audio_mixer),
12931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12933 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12934 msm_routing_put_audio_mixer),
12935 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12936 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12937 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12938 msm_routing_put_audio_mixer),
12939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12941 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12942 msm_routing_put_audio_mixer),
12943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12945 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12946 msm_routing_put_audio_mixer),
12947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12949 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12950 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012951 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12953 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12954 msm_routing_put_audio_mixer),
12955 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12956 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12958 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012959 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12962 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963};
12964
12965static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12969 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012970 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12972 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012974 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012982 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012994 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012998 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013000 MSM_FRONTEND_DAI_MULTIMEDIA5, 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_AUX_PCM_TX", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013004 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013006 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13009 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013010 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
13012 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013014 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013018 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013020 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013026 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013032 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013034 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013038 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013040 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013044 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013046 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013048 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013050 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013058 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013070 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013086 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013088 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013090 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013094 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013096 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013098 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013100 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013102 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013104 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013106 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013108 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13109 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013110 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13112 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13113 msm_routing_put_audio_mixer),
13114 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13116 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13117 msm_routing_put_audio_mixer),
13118 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13120 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13121 msm_routing_put_audio_mixer),
13122 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13124 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13145 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13148 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13149 msm_routing_put_audio_mixer),
13150 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13152 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13153 msm_routing_put_audio_mixer),
13154 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13156 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13157 msm_routing_put_audio_mixer),
13158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13161 msm_routing_put_audio_mixer),
13162 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13165 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013166 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13168 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13169 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013170 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13173 msm_routing_put_audio_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13176 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13177 msm_routing_put_audio_mixer),
13178 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13181 msm_routing_put_audio_mixer),
13182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13185 msm_routing_put_audio_mixer),
13186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13189 msm_routing_put_audio_mixer),
13190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13192 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13193 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013194 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13197 msm_routing_put_audio_mixer),
13198 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13200 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13201 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013202 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13205 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013206 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13207 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13209 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013210};
13211
13212static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013221 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13223 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013247 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013249 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013251 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13252 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013253 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13255 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013263 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013275 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013277 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013281 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013283 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013287 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013289 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013291 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013293 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013297 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013299 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013301 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013303 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013305 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013307 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013309 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013311 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013313 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013315 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013319 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013339 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013343 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013345 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013347 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013349 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013351 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13352 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013353 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13355 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13356 msm_routing_put_audio_mixer),
13357 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13359 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13360 msm_routing_put_audio_mixer),
13361 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13363 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13364 msm_routing_put_audio_mixer),
13365 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013369 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13372 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013373 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13375 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13376 msm_routing_put_audio_mixer),
13377 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13379 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13380 msm_routing_put_audio_mixer),
13381 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13384 msm_routing_put_audio_mixer),
13385 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13388 msm_routing_put_audio_mixer),
13389 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13392 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013393 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13396 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013397 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13400 msm_routing_put_audio_mixer),
13401 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13403 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13404 msm_routing_put_audio_mixer),
13405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13408 msm_routing_put_audio_mixer),
13409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13412 msm_routing_put_audio_mixer),
13413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13416 msm_routing_put_audio_mixer),
13417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13419 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13420 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013421 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13424 msm_routing_put_audio_mixer),
13425 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13428 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013429 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13431 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13432 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433};
13434
13435static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13439 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013440 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013444 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013446 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013452 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013454 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013462 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013464 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013466 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013468 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013472 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013478 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013482 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013484 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013486 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013488 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013490 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013492 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013494 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013496 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013498 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013502 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013506 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013514 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013518 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013520 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013522 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013524 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013526 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013528 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013530 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013532 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013534 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013538 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013540 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013542 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013548 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13549 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013550 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013552 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13553 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013554 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013556 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013558 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013560 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013562 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013564 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013566 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013568 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13569 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13571 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013572 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13574 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13575 msm_routing_put_audio_mixer),
13576 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13579 msm_routing_put_audio_mixer),
13580 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13582 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13583 msm_routing_put_audio_mixer),
13584 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13586 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13595 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013596 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13599 msm_routing_put_audio_mixer),
13600 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13602 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13603 msm_routing_put_audio_mixer),
13604 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13607 msm_routing_put_audio_mixer),
13608 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13611 msm_routing_put_audio_mixer),
13612 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13615 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013616 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13618 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13619 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013620 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13622 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13623 msm_routing_put_audio_mixer),
13624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13627 msm_routing_put_audio_mixer),
13628 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13631 msm_routing_put_audio_mixer),
13632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13635 msm_routing_put_audio_mixer),
13636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13639 msm_routing_put_audio_mixer),
13640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13642 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13643 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013644 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13647 msm_routing_put_audio_mixer),
13648 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13651 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013652 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13654 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13655 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013656 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13658 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13659 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660};
13661
Asish Bhattacharya34504582017-08-08 12:55:01 +053013662static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13666 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013667 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13669 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013673 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013677 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013681 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013685 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013689 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013693 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013697 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013701 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013705 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013709 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013717 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013725 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013729 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013731 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013733 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013735 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013739 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013741 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013743 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013745 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013749 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013751 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013753 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013755 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013757 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013761 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013765 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013769 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013773 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013777 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013779 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013783 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013785 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013793 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13806 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013807 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13810 msm_routing_put_audio_mixer),
13811 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13813 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13814 msm_routing_put_audio_mixer),
13815 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13818 msm_routing_put_audio_mixer),
13819 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13822 msm_routing_put_audio_mixer),
13823 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13826 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013827 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13830 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013831 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13834 msm_routing_get_audio_mixer,
13835 msm_routing_put_audio_mixer),
13836 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13839 msm_routing_get_audio_mixer,
13840 msm_routing_put_audio_mixer),
13841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13843 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13844 msm_routing_get_audio_mixer,
13845 msm_routing_put_audio_mixer),
13846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13849 msm_routing_get_audio_mixer,
13850 msm_routing_put_audio_mixer),
13851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13853 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13854 msm_routing_get_audio_mixer,
13855 msm_routing_put_audio_mixer),
13856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13859 msm_routing_get_audio_mixer,
13860 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013861 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13864 msm_routing_put_audio_mixer),
13865 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13868 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013869 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13871 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13872 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013873 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13875 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13876 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013877};
13878
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013879static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13883 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013884 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13886 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013908 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013912 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013914 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013918 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013920 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013928 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013930 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013932 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013936 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013938 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013940 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013948 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013950 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013954 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013956 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013958 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013960 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013962 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13963 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013964 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13966 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13967 msm_routing_put_audio_mixer),
13968 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13970 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13971 msm_routing_put_audio_mixer),
13972 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13974 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13975 msm_routing_put_audio_mixer),
13976 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13978 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13979 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013980 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13982 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13983 msm_routing_put_audio_mixer),
13984 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13986 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13987 msm_routing_put_audio_mixer),
13988 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13991 msm_routing_put_audio_mixer),
13992 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13994 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13995 msm_routing_put_audio_mixer),
13996 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13999 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14003 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14007 msm_routing_put_audio_mixer),
14008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14011 msm_routing_put_audio_mixer),
14012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14015 msm_routing_put_audio_mixer),
14016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14019 msm_routing_put_audio_mixer),
14020 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14022 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14023 msm_routing_put_audio_mixer),
14024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14026 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14027 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014028 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14031 msm_routing_put_audio_mixer),
14032 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14035 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014036 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14038 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14039 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014040};
14041
Laxminath Kasam38070be2017-08-17 18:21:59 +053014042static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14046 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014047 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14049 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014053 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014057 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014061 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014065 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014069 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014071 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014073 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014077 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014079 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070014081 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014091 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014093 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014095 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014097 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014099 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014101 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014103 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014113 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014117 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014125 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014139 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014141 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014147 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14150 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014151 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14152 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14154 msm_routing_put_audio_mixer),
14155 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14157 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14158 msm_routing_put_audio_mixer),
14159 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14160 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14162 msm_routing_put_audio_mixer),
14163 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14164 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14165 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14166 msm_routing_put_audio_mixer),
14167 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14170 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014171 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14174 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14178 msm_routing_get_audio_mixer,
14179 msm_routing_put_audio_mixer),
14180 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14183 msm_routing_get_audio_mixer,
14184 msm_routing_put_audio_mixer),
14185 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14187 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14188 msm_routing_get_audio_mixer,
14189 msm_routing_put_audio_mixer),
14190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14193 msm_routing_get_audio_mixer,
14194 msm_routing_put_audio_mixer),
14195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14197 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14198 msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
14200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14202 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14203 msm_routing_get_audio_mixer,
14204 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014205 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14206 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14208 msm_routing_put_audio_mixer),
14209 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14211 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14212 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014213 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14215 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14216 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014217 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14218 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14219 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14220 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053014221};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014222static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14226 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014227 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14229 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014237 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014255 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014257 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14258 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014259 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14261 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14262 msm_routing_put_audio_mixer),
14263 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14265 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14266 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014267 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14269 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14270 msm_routing_put_audio_mixer),
14271 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14273 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14274 msm_routing_put_audio_mixer),
14275 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14277 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14278 msm_routing_put_audio_mixer),
14279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14281 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14282 msm_routing_put_audio_mixer),
14283 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14285 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14286 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014287 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14289 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14290 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14293 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14294 msm_routing_get_audio_mixer,
14295 msm_routing_put_audio_mixer),
14296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14298 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14299 msm_routing_get_audio_mixer,
14300 msm_routing_put_audio_mixer),
14301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14303 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14304 msm_routing_get_audio_mixer,
14305 msm_routing_put_audio_mixer),
14306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14308 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14309 msm_routing_get_audio_mixer,
14310 msm_routing_put_audio_mixer),
14311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14313 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14314 msm_routing_get_audio_mixer,
14315 msm_routing_put_audio_mixer),
14316 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14318 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14319 msm_routing_get_audio_mixer,
14320 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014321 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14323 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14324 msm_routing_put_audio_mixer),
14325 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14327 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14328 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014329 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14331 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14332 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333};
14334
14335static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14339 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014340 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14342 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014350 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14351 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014352 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14354 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14355 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014356 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14358 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014360 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014362 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014366 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014368 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14369 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014370 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014374 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014376 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014378 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014380 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14381 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014382 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14383 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014384 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14386 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14387 msm_routing_put_audio_mixer),
14388 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14390 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14391 msm_routing_put_audio_mixer),
14392 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14394 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14395 msm_routing_put_audio_mixer),
14396 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14397 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14398 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14399 msm_routing_put_audio_mixer),
14400 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14402 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14403 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014404 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14406 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14407 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14410 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14411 msm_routing_get_audio_mixer,
14412 msm_routing_put_audio_mixer),
14413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14415 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14416 msm_routing_get_audio_mixer,
14417 msm_routing_put_audio_mixer),
14418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14420 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14421 msm_routing_get_audio_mixer,
14422 msm_routing_put_audio_mixer),
14423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14425 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14426 msm_routing_get_audio_mixer,
14427 msm_routing_put_audio_mixer),
14428 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14430 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14431 msm_routing_get_audio_mixer,
14432 msm_routing_put_audio_mixer),
14433 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14435 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14436 msm_routing_get_audio_mixer,
14437 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014438 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14440 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14441 msm_routing_put_audio_mixer),
14442 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14444 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14445 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014446 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14447 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14448 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14449 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014450};
14451
14452static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014453 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014455 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14456 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014457 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14459 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014461 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14462 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014463 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014465 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014467 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014471 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014473 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14474 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014475 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014479 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014481 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014483 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014487 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14488 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014489 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14490 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14491 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14492 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014493 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14494 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14495 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14496 msm_routing_put_audio_mixer),
14497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14499 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14500 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014501 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14503 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14504 msm_routing_put_audio_mixer),
14505 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14507 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14508 msm_routing_put_audio_mixer),
14509 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14511 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14512 msm_routing_put_audio_mixer),
14513 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14514 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14515 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14516 msm_routing_put_audio_mixer),
14517 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14520 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014521 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14523 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14524 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14527 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14528 msm_routing_get_audio_mixer,
14529 msm_routing_put_audio_mixer),
14530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14532 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14533 msm_routing_get_audio_mixer,
14534 msm_routing_put_audio_mixer),
14535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14537 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14538 msm_routing_get_audio_mixer,
14539 msm_routing_put_audio_mixer),
14540 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14542 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14543 msm_routing_get_audio_mixer,
14544 msm_routing_put_audio_mixer),
14545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14547 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14548 msm_routing_get_audio_mixer,
14549 msm_routing_put_audio_mixer),
14550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14552 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14553 msm_routing_get_audio_mixer,
14554 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014555 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14557 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14558 msm_routing_put_audio_mixer),
14559 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14560 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14561 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14562 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014563 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14565 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14566 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014567};
14568
14569static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014570 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014572 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014574 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014576 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014582 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014584 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014586 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014588 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14589 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014590 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14592 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014602 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014604 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014614 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014616 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014622 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014624 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014626 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014628 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014630 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014632 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014634 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014636 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014642 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14643 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014644 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014652 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014660 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014662 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014664 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014668 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014672 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14673 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014674 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14676 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14677 msm_routing_put_audio_mixer),
14678 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14680 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14681 msm_routing_put_audio_mixer),
14682 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14684 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14685 msm_routing_put_audio_mixer),
14686 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14688 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14689 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014690 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14691 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14692 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14693 msm_routing_put_audio_mixer),
14694 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14695 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14696 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14697 msm_routing_put_audio_mixer),
14698 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14700 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14701 msm_routing_put_audio_mixer),
14702 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14704 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14705 msm_routing_put_audio_mixer),
14706 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14708 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14709 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014710 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14712 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14713 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014714 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14716 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14717 msm_routing_put_audio_mixer),
14718 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14720 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14721 msm_routing_put_audio_mixer),
14722 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14724 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14725 msm_routing_put_audio_mixer),
14726 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14728 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14729 msm_routing_put_audio_mixer),
14730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14732 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14733 msm_routing_put_audio_mixer),
14734 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14736 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14737 msm_routing_put_audio_mixer),
14738 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14740 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14741 msm_routing_put_audio_mixer),
14742 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14744 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14745 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014746 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14748 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14749 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014750};
14751
14752static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14753 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_AUXPCM_TX,
14755 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14756 msm_routing_put_audio_mixer),
14757 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14759 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14760 msm_routing_put_audio_mixer),
14761 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14763 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14764 msm_routing_put_audio_mixer),
14765 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14767 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14768 msm_routing_put_audio_mixer),
14769 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14771 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14772 msm_routing_put_audio_mixer),
14773 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14775 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14776 msm_routing_put_audio_mixer),
14777 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14780 msm_routing_put_audio_mixer),
14781 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14783 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14784 msm_routing_put_audio_mixer),
14785 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14787 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14788 msm_routing_put_audio_mixer),
14789 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14791 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14792 msm_routing_put_audio_mixer),
14793 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14795 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14796 msm_routing_put_audio_mixer),
14797 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14799 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14800 msm_routing_put_audio_mixer),
14801 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14803 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14804 msm_routing_put_audio_mixer),
14805 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14808 msm_routing_put_audio_mixer),
14809 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14811 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
14813 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14815 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14816 msm_routing_put_audio_mixer),
14817 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14819 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14820 msm_routing_put_audio_mixer),
14821 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14823 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14824 msm_routing_put_audio_mixer),
14825 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14827 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14828 msm_routing_put_audio_mixer),
14829 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14831 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14832 msm_routing_put_audio_mixer),
14833 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14835 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14836 msm_routing_put_audio_mixer),
14837 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14839 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14840 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014841 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14843 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14844 msm_routing_put_audio_mixer),
14845 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14847 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14848 msm_routing_put_audio_mixer),
14849 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14852 msm_routing_put_audio_mixer),
14853 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14855 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14856 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014857 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014858 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14859 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014860 msm_routing_put_audio_mixer),
14861 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014862 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14863 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014864 msm_routing_put_audio_mixer),
14865 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014866 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14867 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014868 msm_routing_put_audio_mixer),
14869 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014870 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014872 msm_routing_put_audio_mixer),
14873 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014874 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14875 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014876 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014877 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14879 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14880 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014881 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014882 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14883 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14884 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014885 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014886 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14887 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14888 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014889 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014890 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14891 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14892 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014893 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014894 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14895 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14896 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14899 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14900 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14904 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014905 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14906 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014907 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014908 msm_routing_put_audio_mixer),
14909 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014911 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014912 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014913 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14915 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14916 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014917};
14918
Derek Chenb097d922019-07-31 17:28:02 -070014919static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14920 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14922 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14923 msm_routing_put_audio_mixer),
14924 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14926 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14927 msm_routing_put_audio_mixer),
14928 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14930 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14931 msm_routing_put_audio_mixer),
14932 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14934 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14935 msm_routing_put_audio_mixer),
14936 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14938 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14939 msm_routing_put_audio_mixer),
14940 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14942 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14943 msm_routing_put_audio_mixer),
14944 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14946 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14947 msm_routing_put_audio_mixer),
14948 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14950 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14951 msm_routing_put_audio_mixer),
14952 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14954 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14955 msm_routing_put_audio_mixer),
14956 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14958 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14959 msm_routing_put_audio_mixer),
14960 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14962 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14963 msm_routing_put_audio_mixer),
14964 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14966 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14967 msm_routing_put_audio_mixer),
14968 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14970 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14971 msm_routing_put_audio_mixer),
14972 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14974 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14975 msm_routing_put_audio_mixer),
14976 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14977 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14978 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14979 msm_routing_put_audio_mixer),
14980 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14982 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14983 msm_routing_put_audio_mixer),
14984 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14986 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14987 msm_routing_put_audio_mixer),
14988 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14990 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14991 msm_routing_put_audio_mixer),
14992 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14994 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14995 msm_routing_put_audio_mixer),
14996 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14998 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14999 msm_routing_put_audio_mixer),
15000};
15001
Surendar Karkac1cde372018-08-14 18:56:24 +053015002static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
15003 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15005 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15006 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015007 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15009 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15010 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015011 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_SLIMBUS_6_TX,
15013 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15014 msm_routing_put_audio_mixer),
15015 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_SLIMBUS_7_TX,
15017 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15018 msm_routing_put_audio_mixer),
15019 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_PRI_MI2S_TX,
15021 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15022 msm_routing_put_audio_mixer),
15023 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15025 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15026 msm_routing_put_audio_mixer),
15027 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15029 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15030 msm_routing_put_audio_mixer),
15031 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15033 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15034 msm_routing_put_audio_mixer),
15035 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
15037 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15038 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015039 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_SENARY_MI2S_TX,
15041 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15042 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015043 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15045 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15046 msm_routing_put_audio_mixer),
15047 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15049 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15050 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015051 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SLIMBUS_9_TX,
15053 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15054 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015055 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15057 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15058 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015059};
15060
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015061static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015062 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015064 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15065 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015066 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15068 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015072 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015074 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15075 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015076 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015078 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15079 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015080 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015082 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015084 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015086 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015088 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015090 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015092 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015094 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015096 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15097 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015098 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15100 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15101 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015102 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15104 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15105 msm_routing_put_audio_mixer),
15106 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015108 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080015109 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015110 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15112 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15113 msm_routing_put_audio_mixer),
15114 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15117 msm_routing_put_audio_mixer),
15118 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15120 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15121 msm_routing_put_audio_mixer),
15122 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15124 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15125 msm_routing_put_audio_mixer),
15126 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15128 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15129 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015130 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15132 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15133 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015134 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15136 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15137 msm_routing_get_audio_mixer,
15138 msm_routing_put_audio_mixer),
15139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15141 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15142 msm_routing_get_audio_mixer,
15143 msm_routing_put_audio_mixer),
15144 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15146 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15147 msm_routing_get_audio_mixer,
15148 msm_routing_put_audio_mixer),
15149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15151 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15152 msm_routing_get_audio_mixer,
15153 msm_routing_put_audio_mixer),
15154 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15156 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15157 msm_routing_get_audio_mixer,
15158 msm_routing_put_audio_mixer),
15159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15161 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15162 msm_routing_get_audio_mixer,
15163 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015164 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15166 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15167 msm_routing_put_audio_mixer),
15168 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15170 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15171 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015172 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15173 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15174 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15175 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015176};
15177
15178static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015181 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15182 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015183 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15185 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015187 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15188 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015189 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015193 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015195 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15196 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015197 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015199 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15200 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015201 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015205 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015207 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15208 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015209 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015213 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15214 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015215 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15216 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15217 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15218 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015219 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15220 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15221 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15222 msm_routing_put_audio_mixer),
15223 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15225 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15226 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015227 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15229 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15230 msm_routing_put_audio_mixer),
15231 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15232 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15233 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15234 msm_routing_put_audio_mixer),
15235 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15237 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15238 msm_routing_put_audio_mixer),
15239 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15241 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15242 msm_routing_put_audio_mixer),
15243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15245 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15246 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15249 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15250 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15253 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15254 msm_routing_get_audio_mixer,
15255 msm_routing_put_audio_mixer),
15256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15258 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15259 msm_routing_get_audio_mixer,
15260 msm_routing_put_audio_mixer),
15261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15263 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15264 msm_routing_get_audio_mixer,
15265 msm_routing_put_audio_mixer),
15266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15268 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15269 msm_routing_get_audio_mixer,
15270 msm_routing_put_audio_mixer),
15271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15273 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15274 msm_routing_get_audio_mixer,
15275 msm_routing_put_audio_mixer),
15276 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15278 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15279 msm_routing_get_audio_mixer,
15280 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015281 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15283 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15284 msm_routing_put_audio_mixer),
15285 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15286 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15287 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15288 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015289 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15291 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15292 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015293};
15294
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015295static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15296 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15298 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15299 msm_routing_put_audio_mixer),
15300 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15302 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15303 msm_routing_put_audio_mixer),
15304 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_PRI_MI2S_TX,
15306 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15307 msm_routing_put_audio_mixer),
15308 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_INT3_MI2S_TX,
15310 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15311 msm_routing_put_audio_mixer),
15312 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_INT_FM_TX,
15314 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15315 msm_routing_put_audio_mixer),
15316 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15318 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15319 msm_routing_put_audio_mixer),
15320 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_AFE_PCM_TX,
15322 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15323 msm_routing_put_audio_mixer),
15324 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15326 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15327 msm_routing_put_audio_mixer),
15328 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15330 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15331 msm_routing_put_audio_mixer),
15332 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15334 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15335 msm_routing_put_audio_mixer),
15336 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15338 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15339 msm_routing_put_audio_mixer),
15340 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15342 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15343 msm_routing_put_audio_mixer),
15344 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15346 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15347 msm_routing_put_audio_mixer),
15348 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15350 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15351 msm_routing_put_audio_mixer),
15352 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15354 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15355 msm_routing_put_audio_mixer),
15356 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15358 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15359 msm_routing_put_audio_mixer),
15360 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15362 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15363 msm_routing_put_audio_mixer),
15364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15366 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15367 msm_routing_get_audio_mixer,
15368 msm_routing_put_audio_mixer),
15369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15371 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15372 msm_routing_get_audio_mixer,
15373 msm_routing_put_audio_mixer),
15374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15376 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15377 msm_routing_get_audio_mixer,
15378 msm_routing_put_audio_mixer),
15379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15381 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15382 msm_routing_get_audio_mixer,
15383 msm_routing_put_audio_mixer),
15384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15386 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15387 msm_routing_get_audio_mixer,
15388 msm_routing_put_audio_mixer),
15389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15391 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15392 msm_routing_get_audio_mixer,
15393 msm_routing_put_audio_mixer),
15394 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15396 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15397 msm_routing_put_audio_mixer),
15398 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15399 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15400 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15401 msm_routing_put_audio_mixer),
15402 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15404 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15405 msm_routing_put_audio_mixer),
15406};
15407
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015411 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15412 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015413 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015415 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15416 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015419 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15420 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15428 msm_routing_put_voice_mixer),
15429};
15430
15431static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015432 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15433 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015434 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15435 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15437 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15439 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15443 msm_routing_put_voice_mixer),
15444};
15445
15446static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015447 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15448 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15450 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015451 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15453 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15454 msm_routing_put_voice_mixer),
15455 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15457 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15458 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015461 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15462 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15470 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015473 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15474 msm_routing_put_voice_mixer),
15475};
15476
15477static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15481 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015484 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15485 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015486 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015488 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15489 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015492 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15493 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015496 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15497 msm_routing_put_voice_mixer),
15498};
15499
15500static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015501 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15502MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015503 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15504 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15506MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015507 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15508 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15510MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15512 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15514MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15518MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015519 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15520 msm_routing_put_voice_mixer),
15521};
15522
15523static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15527 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15531 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015532 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015534 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15535 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015536 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015538 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015540 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015542 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15543 msm_routing_put_voice_mixer),
15544};
15545
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015546static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015547 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15548MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015549 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15550 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015551 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15552MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015553 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15554 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015555 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15556MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015557 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15558 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15560MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015561 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15562 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15564MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015565 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15566 msm_routing_put_voice_mixer),
15567};
15568
Karthikeyan Mani57550082018-05-03 18:43:58 -070015569static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15570 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15571 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15572 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15573 msm_routing_put_voice_mixer),
15574 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15576 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15577 msm_routing_put_voice_mixer),
15578 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15580 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15581 msm_routing_put_voice_mixer),
15582 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15583 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15584 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15585 msm_routing_put_voice_mixer),
15586 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15588 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15589 msm_routing_put_voice_mixer),
15590};
15591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015592static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015595 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15596 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015597 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15598 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015599 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15600 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015601 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15602 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015603 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15604 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015605 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15606 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015607 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015609 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15610 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015611 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15612 msm_routing_put_voice_mixer),
15613};
15614
15615static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15619 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015620 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15621 MSM_BACKEND_DAI_MI2S_RX,
15622 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15623 msm_routing_put_voice_mixer),
15624 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15625 MSM_BACKEND_DAI_MI2S_RX,
15626 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015628 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015630 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015634 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15635 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15639 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015640 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15641 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015642 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15643 msm_routing_put_voice_mixer),
15644};
15645
15646static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015648 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15650 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015651 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_PRI_MI2S_RX,
15653 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15654 msm_routing_put_voice_mixer),
15655 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15656 MSM_BACKEND_DAI_PRI_MI2S_RX,
15657 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15658 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015660 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15662 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015663 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015664 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015665 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15666 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015668 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015672 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15674 msm_routing_put_voice_mixer),
15675};
15676
15677static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015678 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15679MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015680 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15683MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15687MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15691MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015692 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15695MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
15698};
15699
15700static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015703 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15704 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015707 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15708 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15710 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15712 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015715 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015719 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15720 msm_routing_put_voice_mixer),
15721};
15722
15723static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15727 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015728 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15729 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15730 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15731 msm_routing_put_voice_mixer),
15732 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15733 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15734 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15735 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015736 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015738 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15739 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015742 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15743 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15747 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015748 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015750 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15751 msm_routing_put_voice_mixer),
15752};
15753
15754static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015757 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15758 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015759 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15761 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15762 msm_routing_put_voice_mixer),
15763 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15765 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15766 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015767 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015769 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15770 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015771 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015773 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15774 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15778 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15782 msm_routing_put_voice_mixer),
15783};
15784
15785static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015786 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15787 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015788 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15789 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015790 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15792 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15793 msm_routing_put_voice_stub_mixer),
15794 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15796 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15797 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015800 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15801 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015804 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015808 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15813 msm_routing_put_voice_mixer),
15814};
15815
Karthikeyan Manic3700752019-03-11 18:33:53 -070015816static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15817 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15819 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15820 msm_routing_put_voice_mixer),
15821 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15823 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15824 msm_routing_put_voice_mixer),
15825 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15827 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15828 msm_routing_put_voice_mixer),
15829 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15831 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15832 msm_routing_put_voice_mixer),
15833 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15835 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15836 msm_routing_put_voice_mixer),
15837};
15838
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15843 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015844 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015846 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15847 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015850 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15851 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15855 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015856 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15857 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015858 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15859 msm_routing_put_voice_mixer),
15860};
15861
15862static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015865 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15866 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15870 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015871 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015873 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15874 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015877 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15878 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015879 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15880 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015881 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15882 msm_routing_put_voice_mixer),
15883};
15884
15885static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015886 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15887MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015888 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15889 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15891MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015892 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15893 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015894 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15895MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015896 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15897 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15899MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15901 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15903MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15905 msm_routing_put_voice_mixer),
15906};
15907
15908static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015909 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15910MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015911 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15912 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015913 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15914MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015915 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15916 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15918MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015919 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15920 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15922MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015923 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15924 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15926MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15928 msm_routing_put_voice_mixer),
15929};
15930
15931static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15933MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15935 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15937MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015938 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15939 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15941MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15943 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015944 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15945MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015946 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15947 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15949MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015950 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15951 msm_routing_put_voice_mixer),
15952};
15953
Rohit Kumara5077932017-09-10 22:05:05 +053015954static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15956MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015957 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15958 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015959 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15960MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015961 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15962 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15964MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015965 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15966 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015967 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15968MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015969 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15970 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15972MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015973 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15974 msm_routing_put_voice_mixer),
15975};
15976
Karthikeyan Manic3700752019-03-11 18:33:53 -070015977static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15978 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15979 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15980 msm_routing_put_voice_mixer),
15981 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15982 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15983 msm_routing_put_voice_mixer),
15984 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15985 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15986 msm_routing_put_voice_mixer),
15987 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15988 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15989 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15990 msm_routing_put_voice_mixer),
15991 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15993 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15994 msm_routing_put_voice_mixer),
15995};
15996
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016000 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16001 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016002 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16003 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016004 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16005 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016006 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016008 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16009 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016012 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16013 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016014 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16015 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016016 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16017 msm_routing_put_voice_mixer),
16018};
16019
16020static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016021 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16022MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016023 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16024 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16026MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16028 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16030MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016031 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16032 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16034MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016035 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16036 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016037 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16038MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016039 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16040 msm_routing_put_voice_mixer),
16041};
16042
16043static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016046 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16047 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016050 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16051 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016052 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016054 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16055 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016058 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16059 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016060 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16061 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016062 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16063 msm_routing_put_voice_mixer),
16064};
16065
16066static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016067 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16068 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016069 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16070 msm_routing_put_voice_mixer),
16071};
16072
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053016073static const struct snd_kcontrol_new quin_tdm_rx_2_voice_mixer_controls[] = {
16074 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
16076 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16077 msm_routing_put_voice_mixer),
16078};
16079
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016080static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
16081 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16083 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16084 msm_routing_put_voice_mixer),
16085 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16086 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16087 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16088 msm_routing_put_voice_mixer),
16089 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16091 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16092 msm_routing_put_voice_mixer),
16093 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16095 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16096 msm_routing_put_voice_mixer),
16097 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16098 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16099 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16100 msm_routing_put_voice_mixer),
16101};
16102
16103static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
16104 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16106 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16107 msm_routing_put_voice_mixer),
16108 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16110 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16111 msm_routing_put_voice_mixer),
16112 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16113 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16114 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16115 msm_routing_put_voice_mixer),
16116 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16118 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16119 msm_routing_put_voice_mixer),
16120 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16121 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16122 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16123 msm_routing_put_voice_mixer),
16124};
16125
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016126static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
16127 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16129 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16130 msm_routing_put_voice_mixer),
16131 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16133 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16134 msm_routing_put_voice_mixer),
16135 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16137 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16138 msm_routing_put_voice_mixer),
16139 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16141 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16142 msm_routing_put_voice_mixer),
16143 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16145 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16146 msm_routing_put_voice_mixer),
16147};
16148
16149static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
16150 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16152 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16153 msm_routing_put_voice_mixer),
16154 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16156 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16157 msm_routing_put_voice_mixer),
16158 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16160 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16161 msm_routing_put_voice_mixer),
16162 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16164 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16165 msm_routing_put_voice_mixer),
16166 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16168 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16169 msm_routing_put_voice_mixer),
16170};
16171
16172static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
16173 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16174 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16175 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16176 msm_routing_put_voice_mixer),
16177 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16179 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16180 msm_routing_put_voice_mixer),
16181 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16183 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16184 msm_routing_put_voice_mixer),
16185 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16187 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16188 msm_routing_put_voice_mixer),
16189 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16191 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16192 msm_routing_put_voice_mixer),
16193};
16194
16195static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
16196 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16198 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16199 msm_routing_put_voice_mixer),
16200 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16202 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16203 msm_routing_put_voice_mixer),
16204 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16206 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16207 msm_routing_put_voice_mixer),
16208 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16210 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16211 msm_routing_put_voice_mixer),
16212 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16214 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16215 msm_routing_put_voice_mixer),
16216};
16217
16218static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
16219 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16221 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16222 msm_routing_put_voice_mixer),
16223 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16225 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16226 msm_routing_put_voice_mixer),
16227 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16229 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16230 msm_routing_put_voice_mixer),
16231 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16233 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16234 msm_routing_put_voice_mixer),
16235 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16237 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16238 msm_routing_put_voice_mixer),
16239};
16240
16241static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16242 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16244 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16245 msm_routing_put_voice_mixer),
16246 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16248 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16249 msm_routing_put_voice_mixer),
16250 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16252 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
16254 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16256 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16257 msm_routing_put_voice_mixer),
16258 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16260 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16261 msm_routing_put_voice_mixer),
16262};
16263
16264static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16265 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16267 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16268 msm_routing_put_voice_mixer),
16269 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16271 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16272 msm_routing_put_voice_mixer),
16273 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16275 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16276 msm_routing_put_voice_mixer),
16277 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16279 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16280 msm_routing_put_voice_mixer),
16281 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16283 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16284 msm_routing_put_voice_mixer),
16285};
16286
16287static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16288 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16290 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16291 msm_routing_put_voice_mixer),
16292 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16294 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16295 msm_routing_put_voice_mixer),
16296 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16298 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16299 msm_routing_put_voice_mixer),
16300 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16302 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16303 msm_routing_put_voice_mixer),
16304 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16306 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16307 msm_routing_put_voice_mixer),
16308};
16309
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016310static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16311 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16312 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16313 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16314 msm_routing_put_voice_mixer),
16315 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16317 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16318 msm_routing_put_voice_stub_mixer),
16319 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16321 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16322 msm_routing_put_voice_stub_mixer),
16323 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16324 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16325 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16326 msm_routing_put_voice_mixer),
16327 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16328 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16329 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16330 msm_routing_put_voice_mixer),
16331 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16333 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16334 msm_routing_put_voice_mixer),
16335 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16337 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16338 msm_routing_put_voice_mixer),
16339 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16341 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16342 msm_routing_put_voice_mixer),
16343};
16344
16345static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16346 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16347 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16348 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16349 msm_routing_put_voice_mixer),
16350 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16351 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16352 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16353 msm_routing_put_voice_stub_mixer),
16354 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16355 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16356 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16357 msm_routing_put_voice_stub_mixer),
16358 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16359 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16360 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16361 msm_routing_put_voice_mixer),
16362 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16363 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16364 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16365 msm_routing_put_voice_mixer),
16366 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16367 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16368 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16369 msm_routing_put_voice_mixer),
16370 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16371 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16372 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16373 msm_routing_put_voice_mixer),
16374 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16375 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16376 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16377 msm_routing_put_voice_mixer),
16378};
16379
16380static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16381 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16382 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16383 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16384 msm_routing_put_voice_mixer),
16385 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16386 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16387 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16388 msm_routing_put_voice_stub_mixer),
16389 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16390 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16391 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16392 msm_routing_put_voice_stub_mixer),
16393 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16395 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16396 msm_routing_put_voice_mixer),
16397 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16399 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16400 msm_routing_put_voice_mixer),
16401 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16404 msm_routing_put_voice_mixer),
16405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16408 msm_routing_put_voice_mixer),
16409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16412 msm_routing_put_voice_mixer),
16413};
16414
16415static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16416 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16417 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16418 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16419 msm_routing_put_voice_mixer),
16420 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16421 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16422 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16423 msm_routing_put_voice_stub_mixer),
16424 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16425 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16426 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16427 msm_routing_put_voice_stub_mixer),
16428 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16429 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16430 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16431 msm_routing_put_voice_mixer),
16432 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16434 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16435 msm_routing_put_voice_mixer),
16436 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16437 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16438 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16439 msm_routing_put_voice_mixer),
16440 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16442 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16443 msm_routing_put_voice_mixer),
16444 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16446 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16447 msm_routing_put_voice_mixer),
16448};
16449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016450static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016451 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016453 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16454 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016457 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16458 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016459};
16460
16461static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016464 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16465 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016468 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16469 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016470};
16471
16472static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016473 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016475 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16476 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016477 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016479 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16480 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016481};
16482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016484 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16485 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016486 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16487 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016490 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16491 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016493 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16494 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016495 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016496 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16497 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016498 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016499 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16500 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016501 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16503 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016504 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016505 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16506 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016507 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16509 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016511 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16512 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016513 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016514 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16515 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016516 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16518 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016519 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016520 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16521 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016522 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16524 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016526 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16527 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016528 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016529 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16530 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016531 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16533 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016534 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016535 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16536 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016537 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016539 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16540 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016541 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016542 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016543 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016544 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16546 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16547 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16549 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016550 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16552 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16555 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16556 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16558 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16561 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16564 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16567 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16568 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16570 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016571 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16573 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16574 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16575 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16576 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016577 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016578 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16579 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580};
16581
16582static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16586 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016587 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016589 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16590 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016591 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016592 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16593 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016595 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16596 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016597 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016598 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16599 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016600 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016601 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16602 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16605 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016607 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16608 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016609 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016610 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16611 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016612 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016613 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16614 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016615 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16616 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16617 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016619 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16620 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016621 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16622 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16623 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016625 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16626 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016627 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016628 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16629 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016630 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016631 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16632 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016634 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16635 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016636 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016637 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16638 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16642 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16644 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016645 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16647 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16650 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16659 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16662 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16663 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16665 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016666 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16668 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16669 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16671 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016672 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016674 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016675};
16676
16677static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016680 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016684 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016688 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016690 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016692 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016694 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16695 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016696 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016698 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16699 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016700 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016702 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16703 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016704 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016706 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016708 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016710 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016712 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016714 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016716 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16717 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016718 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16719 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16720 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016722 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16723 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16725 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016726 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016730 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016732 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016734 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016738 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016742 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016744 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016746 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016748 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16749 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016750 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16752 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16753 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16755 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016756 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16758 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16761 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16762 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16764 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16765 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16767 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16768 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16770 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16773 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16774 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16775 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16776 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016777 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16778 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16779 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016780};
16781
16782static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016783 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16784 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16786 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016787 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16788 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016789 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16790 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016791 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16792 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016793 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16794 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016795 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16796 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016797 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16798 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016799 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16800 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16802 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16806 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016807 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16810 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016811 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16814 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16818 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016819 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16822 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016825 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16826 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016829 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16830 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016831 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16832 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016833 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16834 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016835 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16836 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016837 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16838 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016839 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16840 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16841 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16842 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016843 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016845 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16846 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016847 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016849 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16850 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016851 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16852 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016853 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16854 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016855 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16856 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016857 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16858 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016859 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16860 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016861 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16862 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016863 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16865 1, 0, msm_routing_get_voice_stub_mixer,
16866 msm_routing_put_voice_stub_mixer),
16867 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16869 1, 0, msm_routing_get_voice_stub_mixer,
16870 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016871 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16873 1, 0, msm_routing_get_voice_stub_mixer,
16874 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016875 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16877 1, 0, msm_routing_get_voice_stub_mixer,
16878 msm_routing_put_voice_stub_mixer),
16879 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16880 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16881 1, 0, msm_routing_get_voice_stub_mixer,
16882 msm_routing_put_voice_stub_mixer),
16883 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16884 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16885 1, 0, msm_routing_get_voice_stub_mixer,
16886 msm_routing_put_voice_stub_mixer),
16887 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16888 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16889 1, 0, msm_routing_get_voice_stub_mixer,
16890 msm_routing_put_voice_stub_mixer),
16891 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16893 1, 0, msm_routing_get_voice_stub_mixer,
16894 msm_routing_put_voice_stub_mixer),
16895 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16897 1, 0, msm_routing_get_voice_stub_mixer,
16898 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016899};
16900
16901static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016902 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016904 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16905 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016906 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16907 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016908 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16909 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016910 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16911 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016912 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16913 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016914 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16915 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016916 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16917 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016918 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16921 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016924 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16925 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016928 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16929 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016930 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016932 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16933 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016934 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16935 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16936 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16937 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016938 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16939 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016940 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16941 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016942 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16945 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016946 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016948 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16949 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016950 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016952 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16953 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016954 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16955 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016956 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16957 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016958 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16960 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16961 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016962 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16963 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016964 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16965 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016966 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016968 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16969 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016970 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16971 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16972 1, 0, msm_routing_get_voice_stub_mixer,
16973 msm_routing_put_voice_stub_mixer),
16974 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16975 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16976 1, 0, msm_routing_get_voice_stub_mixer,
16977 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016978 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16979 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16980 1, 0, msm_routing_get_voice_stub_mixer,
16981 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016982 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16983 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16984 1, 0, msm_routing_get_voice_stub_mixer,
16985 msm_routing_put_voice_stub_mixer),
16986 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16987 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16988 1, 0, msm_routing_get_voice_stub_mixer,
16989 msm_routing_put_voice_stub_mixer),
16990 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16991 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16992 1, 0, msm_routing_get_voice_stub_mixer,
16993 msm_routing_put_voice_stub_mixer),
16994 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16995 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16996 1, 0, msm_routing_get_voice_stub_mixer,
16997 msm_routing_put_voice_stub_mixer),
16998 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16999 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
17000 1, 0, msm_routing_get_voice_stub_mixer,
17001 msm_routing_put_voice_stub_mixer),
17002 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17003 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
17004 1, 0, msm_routing_get_voice_stub_mixer,
17005 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006};
17007
17008static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017009 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017011 MSM_FRONTEND_DAI_VOLTE_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("SLIM_1_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017015 MSM_FRONTEND_DAI_VOLTE_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("STUB_1_TX_HL", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017019 MSM_FRONTEND_DAI_VOLTE_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023 MSM_FRONTEND_DAI_VOLTE_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017027 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17028 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_FRONTEND_DAI_VOLTE_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017035 MSM_FRONTEND_DAI_VOLTE_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017039 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17040 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017041 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17042 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17043 MSM_FRONTEND_DAI_VOLTE_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_0_TX", SND_SOC_NOPM,
17046 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017047 MSM_FRONTEND_DAI_VOLTE_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_3_TX", SND_SOC_NOPM,
17050 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017051 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17052 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017053 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017055 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17056 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017057 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17058 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017059 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17060 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017061 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17062 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017063 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17064 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017065 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17066 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017067 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17068 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017069 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17070 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017071 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17072 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017073 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17074 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17075 1, 0, msm_routing_get_voice_stub_mixer,
17076 msm_routing_put_voice_stub_mixer),
17077 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17078 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17079 1, 0, msm_routing_get_voice_stub_mixer,
17080 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017081 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17082 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17083 1, 0, msm_routing_get_voice_stub_mixer,
17084 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17087 1, 0, msm_routing_get_voice_stub_mixer,
17088 msm_routing_put_voice_stub_mixer),
17089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17091 1, 0, msm_routing_get_voice_stub_mixer,
17092 msm_routing_put_voice_stub_mixer),
17093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
17094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17095 1, 0, msm_routing_get_voice_stub_mixer,
17096 msm_routing_put_voice_stub_mixer),
17097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
17099 1, 0, msm_routing_get_voice_stub_mixer,
17100 msm_routing_put_voice_stub_mixer),
17101 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
17102 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
17103 1, 0, msm_routing_get_voice_stub_mixer,
17104 msm_routing_put_voice_stub_mixer),
17105 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17106 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
17107 1, 0, msm_routing_get_voice_stub_mixer,
17108 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017109};
17110
17111static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017112 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017114 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017116 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017118 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017120 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_INT_BT_SCO_TX,
17122 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017123 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017124 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017126 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17127 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017130 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17131 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017132 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17133 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017134 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17135 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017136 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17137 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017138 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17139 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017140 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017142 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17143 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017144 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17145 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017146 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17147 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017148 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17149 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17150 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017152 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
17153 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017154 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017156 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
17157 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017158 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017160 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017162 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017164 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
17165 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017166 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17167 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017168 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017170 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17171 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017172 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
17173 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017174 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17175 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017176 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017178 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17179 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017180 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17182 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17183 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17184 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17185 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017186 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17187 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17188 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017189 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17190 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17191 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17192 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17193 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17194 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17195 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17197 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17198 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
17200 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17201 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
17202 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
17203 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17204 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
17205 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
17206 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207};
17208
17209static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017210 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17211 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017212 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017214 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17215 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017216 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017218 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17219 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017220 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017222 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17223 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017224 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017226 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17227 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017228 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17229 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017230 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17231 MSM_BACKEND_DAI_INT0_MI2S_RX,
17232 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017234 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17235 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017236 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017238 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17239 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017240 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017242 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17243 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017244 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017246 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17247 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017248 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017250 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17251 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017252 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17253 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017254 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17255 MSM_BACKEND_DAI_INT0_MI2S_RX,
17256 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17257 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017258};
17259
17260static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017261 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17262 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017263 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017265 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17266 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017267 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017269 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17270 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017271 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017273 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17274 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017275 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017277 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17278 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017279 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17280 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017281 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17282 MSM_BACKEND_DAI_INT4_MI2S_RX,
17283 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017285 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17286 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017287 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017289 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17290 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017291 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017293 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17294 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017295 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017297 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17298 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017299 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017301 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17302 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017303 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17304 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017305 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17306 MSM_BACKEND_DAI_INT4_MI2S_RX,
17307 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17308 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017309};
17310
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017311static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17312 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17314 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17315 msm_routing_put_port_mixer),
17316 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17317 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17319 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017320 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17321 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17322 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17323 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017324 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17325 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17326 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17327 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017328};
17329
17330static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17331 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17333 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17334 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017335 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17337 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17338 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017339 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017341 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17342 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17346 msm_routing_put_port_mixer),
17347
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017348};
17349
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053017350static const struct snd_kcontrol_new rx_cdc_dma_rx_1_port_mixer_controls[] = {
17351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17353 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17354 msm_routing_put_port_mixer),
17355 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17358 msm_routing_put_port_mixer),
17359 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17361 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17362 msm_routing_put_port_mixer),
17363 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17365 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17366 msm_routing_put_port_mixer),
17367};
17368
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017369static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017370 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17371 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017372 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017374 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17375 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017376 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017378 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17379 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017380 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017382 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17383 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017384 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017386 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17387 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017388 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017390 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17391 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017392 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017394 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17395 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017396 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017398 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17399 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017400 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017402 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17403 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017404 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017406 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17407 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017408 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17409 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017410 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17411 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17412 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017414 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17415 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017416 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017418 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17419 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017420 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017422 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17423 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017424 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017426 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17427 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017428 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017430 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17431 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017432 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017434 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17435 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017436 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17437 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017438 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17439 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17440 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017442 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17443 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017444 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017446 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17447 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017448 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017450 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17451 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017452 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017454 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17455 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017456 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017458 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17459 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017460 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017462 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17463 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017464 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17465 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017466 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17467 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17468 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17469 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017470 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17471 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17472 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017473 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017474};
17475
17476static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017477 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17478 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017479 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017481 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17482 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017483 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017485 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17486 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017487 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017489 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17490 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017493 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17494 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017495 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017497 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17498 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017499 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17500 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017501 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17502 MSM_BACKEND_DAI_AUXPCM_RX,
17503 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17504 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017505};
17506
17507static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017508 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17509 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017510 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017512 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17513 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017514 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017516 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17517 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017518 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017520 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17521 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017522 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17523 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017524};
17525
17526static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017527 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17528 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017529 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017531 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17532 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017533 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017535 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17536 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017537 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17538 msm_routing_put_port_mixer),
17539};
17540
17541static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017542 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17543 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017544 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017546 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17547 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017548 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017550 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17551 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017552 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17553 msm_routing_put_port_mixer),
17554};
17555
Rohit Kumara5077932017-09-10 22:05:05 +053017556static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017557 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017559 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017561 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17562 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017563 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017565 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17566 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017567 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17568 msm_routing_put_port_mixer),
17569};
17570
Karthikeyan Manic3700752019-03-11 18:33:53 -070017571static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17572 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17574 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17575 msm_routing_put_port_mixer),
17576 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17578 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17579 msm_routing_put_port_mixer),
17580 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17582 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17583 msm_routing_put_port_mixer),
17584};
17585
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017586static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017587 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17588 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017589 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017591 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17592 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017593 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017595 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17596 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017597 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017599 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17600 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017601 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017603 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17604 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017605 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017607 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17608 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017609 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17610 msm_routing_put_port_mixer),
17611};
17612
17613static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017614 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17615 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017616 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017618 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17619 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017620 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017622 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17623 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017624 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017626 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17627 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017628 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017630 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17631 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017632 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17633 msm_routing_put_port_mixer),
17634};
17635
17636static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017637 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17638 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017639 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017641 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17642 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017643 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017645 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17646 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017647 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017649 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17650 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017651 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017653 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17654 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017655 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017657 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17658 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017659 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017661 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17662 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017663 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017665 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17666 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017667 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017669 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17670 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017671 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017673 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17674 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017675 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017677 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17678 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017679 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017681 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17682 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017683 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17684 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017685 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17686 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17687 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17688 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017689};
17690
17691static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017692 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17693 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017694 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017696 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17697 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017698 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17699 msm_routing_put_port_mixer),
17700};
17701
17702static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017703 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17704 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017705 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017707 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17708 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017709 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17710 msm_routing_put_port_mixer),
17711};
17712
17713
17714static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017715 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17716 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017717 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17718 msm_routing_put_port_mixer),
17719};
17720
17721static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017722 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17723 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017724 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17725 msm_routing_put_port_mixer),
17726};
17727
Karthikeyan Mani57550082018-05-03 18:43:58 -070017728static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17729 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17730 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17731 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17732 msm_routing_put_port_mixer),
17733};
17734
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017735static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017736 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17737 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017738 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17739 msm_routing_put_port_mixer),
17740};
17741
17742static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017743 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17744 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017745 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017747 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17748 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017749 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17750 msm_routing_put_port_mixer),
17751};
17752
17753static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017754 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17755 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017756 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017758 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17759 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017760 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017762 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17763 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017764 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017766 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17767 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017768 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017770 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17771 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017772 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017774 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17775 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017776 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017778 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17779 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017780 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17781 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017782 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17783 MSM_BACKEND_DAI_PRI_MI2S_RX,
17784 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017786 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17787 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017788 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017790 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17791 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017792 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017794 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17795 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017796 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17797 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017798};
17799
17800static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017801 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17802 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17804 msm_routing_put_port_mixer),
17805};
17806
17807static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017808 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17809 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX", SND_SOC_NOPM,
17813 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017814 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017820 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17821 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017824 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17825 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017826 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017828 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17829 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017830 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017832 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17833 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017836 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17837 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017838 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17839 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017840 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17841 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17842 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017844 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17845 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017846 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17847 msm_routing_put_port_mixer),
17848};
17849
Rohit Kumara5077932017-09-10 22:05:05 +053017850static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017851 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17852 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017853 MSM_BACKEND_DAI_PRI_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
17856 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017857 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
17860 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017861 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17864 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017865 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17868 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017869 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17870 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017871 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17873 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017875 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17876 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017877 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017879 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17880 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017881 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17882 msm_routing_put_port_mixer),
17883};
17884
Karthikeyan Manic3700752019-03-11 18:33:53 -070017885static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17886 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17888 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17889 msm_routing_put_port_mixer),
17890 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17891 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17892 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17893 msm_routing_put_port_mixer),
17894 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17895 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17896 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17897 msm_routing_put_port_mixer),
17898 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17899 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17900 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17901 msm_routing_put_port_mixer),
17902 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17903 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17904 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17905 msm_routing_put_port_mixer),
17906 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17907 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17908 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17909 msm_routing_put_port_mixer),
17910 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17911 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17912 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17913 msm_routing_put_port_mixer),
17914 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17915 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17916 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17917 msm_routing_put_port_mixer),
17918};
17919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017920static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017921 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17922 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017923 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17924 msm_routing_get_port_mixer,
17925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017926 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17927 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017928 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17929 msm_routing_get_port_mixer,
17930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017931 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17932 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17934 msm_routing_get_port_mixer,
17935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017936 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17937 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017938 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17939 msm_routing_get_port_mixer,
17940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017941 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17942 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017943 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17944 msm_routing_get_port_mixer,
17945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017946 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17947 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017948 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17949 msm_routing_get_port_mixer,
17950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017951 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17952 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017953 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17954 msm_routing_get_port_mixer,
17955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017956 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17957 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17959 msm_routing_get_port_mixer,
17960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017961 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17962 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017963 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17964 msm_routing_get_port_mixer,
17965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017966 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17967 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017968 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17969 msm_routing_get_port_mixer,
17970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017971 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17972 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017973 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17974 msm_routing_get_port_mixer,
17975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017976 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17977 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017978 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17979 msm_routing_get_port_mixer,
17980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017981 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17982 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017983 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17984 msm_routing_get_port_mixer,
17985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017986 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17987 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017988 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17989 msm_routing_get_port_mixer,
17990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017991 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17992 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017993 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17994 msm_routing_get_port_mixer,
17995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017996 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17997 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017998 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17999 msm_routing_get_port_mixer,
18000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018001 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18002 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018003 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18004 msm_routing_get_port_mixer,
18005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018006 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18007 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018008 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18009 msm_routing_get_port_mixer,
18010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018011 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18012 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018013 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18014 msm_routing_get_port_mixer,
18015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018016 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18017 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018018 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18019 msm_routing_get_port_mixer,
18020 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018021 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18022 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18023 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18024 msm_routing_get_port_mixer,
18025 msm_routing_put_port_mixer),
18026 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18027 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18028 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18029 msm_routing_get_port_mixer,
18030 msm_routing_put_port_mixer),
18031 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18032 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18033 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18034 msm_routing_get_port_mixer,
18035 msm_routing_put_port_mixer),
18036 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18037 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18038 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18039 msm_routing_get_port_mixer,
18040 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018041};
18042
18043static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018044 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18045 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018046 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18047 msm_routing_get_port_mixer,
18048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018049 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18050 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018051 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18052 msm_routing_get_port_mixer,
18053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018054 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18055 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018056 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18057 msm_routing_get_port_mixer,
18058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018059 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18060 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018061 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18062 msm_routing_get_port_mixer,
18063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018064 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18065 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018066 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18067 msm_routing_get_port_mixer,
18068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018069 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18070 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018071 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18072 msm_routing_get_port_mixer,
18073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018074 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18075 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018076 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18077 msm_routing_get_port_mixer,
18078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018079 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18080 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018081 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18082 msm_routing_get_port_mixer,
18083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018084 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18085 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018086 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18087 msm_routing_get_port_mixer,
18088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018089 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18090 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018091 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18092 msm_routing_get_port_mixer,
18093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018094 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18095 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018096 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18097 msm_routing_get_port_mixer,
18098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018099 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18100 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018101 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18102 msm_routing_get_port_mixer,
18103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018104 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18105 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018106 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18107 msm_routing_get_port_mixer,
18108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018109 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18110 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018111 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18112 msm_routing_get_port_mixer,
18113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018114 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18115 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018116 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18117 msm_routing_get_port_mixer,
18118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018119 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18120 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018121 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18122 msm_routing_get_port_mixer,
18123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018124 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18125 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018126 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18127 msm_routing_get_port_mixer,
18128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018129 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18130 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018131 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18132 msm_routing_get_port_mixer,
18133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018134 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18135 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018136 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18137 msm_routing_get_port_mixer,
18138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018139 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18140 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018141 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18142 msm_routing_get_port_mixer,
18143 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018144 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18145 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18146 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18147 msm_routing_get_port_mixer,
18148 msm_routing_put_port_mixer),
18149 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18150 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18151 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18152 msm_routing_get_port_mixer,
18153 msm_routing_put_port_mixer),
18154 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18155 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18156 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18157 msm_routing_get_port_mixer,
18158 msm_routing_put_port_mixer),
18159 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18160 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18161 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18162 msm_routing_get_port_mixer,
18163 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018164};
18165
18166static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018167 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18168 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018169 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18170 msm_routing_get_port_mixer,
18171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018172 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18173 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018174 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18175 msm_routing_get_port_mixer,
18176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018177 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18178 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018179 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18180 msm_routing_get_port_mixer,
18181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018182 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18183 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018184 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18185 msm_routing_get_port_mixer,
18186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018187 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18188 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018189 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18190 msm_routing_get_port_mixer,
18191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018192 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18193 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018194 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18195 msm_routing_get_port_mixer,
18196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018197 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18198 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018199 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18200 msm_routing_get_port_mixer,
18201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018202 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18203 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018204 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18205 msm_routing_get_port_mixer,
18206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018207 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18208 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018209 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18210 msm_routing_get_port_mixer,
18211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018212 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18213 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018214 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18215 msm_routing_get_port_mixer,
18216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018217 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18218 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018219 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18220 msm_routing_get_port_mixer,
18221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018222 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18223 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018224 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18225 msm_routing_get_port_mixer,
18226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018227 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18228 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018229 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18230 msm_routing_get_port_mixer,
18231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018232 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18233 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018234 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18235 msm_routing_get_port_mixer,
18236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018237 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18238 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018239 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18240 msm_routing_get_port_mixer,
18241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018242 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18243 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018244 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18245 msm_routing_get_port_mixer,
18246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018247 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18248 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018249 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18250 msm_routing_get_port_mixer,
18251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018252 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18253 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018254 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18255 msm_routing_get_port_mixer,
18256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018257 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18258 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018259 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18260 msm_routing_get_port_mixer,
18261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018262 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18263 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018264 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18265 msm_routing_get_port_mixer,
18266 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018267 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18268 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18269 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18270 msm_routing_get_port_mixer,
18271 msm_routing_put_port_mixer),
18272 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18273 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18274 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18275 msm_routing_get_port_mixer,
18276 msm_routing_put_port_mixer),
18277 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18278 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18279 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18280 msm_routing_get_port_mixer,
18281 msm_routing_put_port_mixer),
18282 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18283 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18284 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18285 msm_routing_get_port_mixer,
18286 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018287};
18288
18289static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018290 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18291 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018292 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18293 msm_routing_get_port_mixer,
18294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018295 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18296 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018297 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18298 msm_routing_get_port_mixer,
18299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018300 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18301 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018302 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18303 msm_routing_get_port_mixer,
18304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018305 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18306 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018307 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18308 msm_routing_get_port_mixer,
18309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018310 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18311 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018312 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18313 msm_routing_get_port_mixer,
18314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018315 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18316 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018317 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18318 msm_routing_get_port_mixer,
18319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018320 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18321 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018322 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18323 msm_routing_get_port_mixer,
18324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018325 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18326 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018327 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18328 msm_routing_get_port_mixer,
18329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018330 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18331 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018332 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18333 msm_routing_get_port_mixer,
18334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018335 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18336 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018337 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18338 msm_routing_get_port_mixer,
18339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018340 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18341 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018342 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18343 msm_routing_get_port_mixer,
18344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018345 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18346 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018347 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18348 msm_routing_get_port_mixer,
18349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018350 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18351 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018352 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18353 msm_routing_get_port_mixer,
18354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018355 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18356 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018357 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18358 msm_routing_get_port_mixer,
18359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018360 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18361 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018362 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18363 msm_routing_get_port_mixer,
18364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018365 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18366 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018367 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18368 msm_routing_get_port_mixer,
18369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018370 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18371 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018372 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18373 msm_routing_get_port_mixer,
18374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018375 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18376 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018377 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18378 msm_routing_get_port_mixer,
18379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018380 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18381 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018382 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18383 msm_routing_get_port_mixer,
18384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018385 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18386 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018387 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18388 msm_routing_get_port_mixer,
18389 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018390 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18391 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18392 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18393 msm_routing_get_port_mixer,
18394 msm_routing_put_port_mixer),
18395 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18396 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18397 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18398 msm_routing_get_port_mixer,
18399 msm_routing_put_port_mixer),
18400 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18401 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18402 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18403 msm_routing_get_port_mixer,
18404 msm_routing_put_port_mixer),
18405 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18406 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18407 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18408 msm_routing_get_port_mixer,
18409 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018410};
18411
18412static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018413 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18414 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018415 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18416 msm_routing_get_port_mixer,
18417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018418 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18419 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018420 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18421 msm_routing_get_port_mixer,
18422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018423 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18424 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018425 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18426 msm_routing_get_port_mixer,
18427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018428 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18429 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018430 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18431 msm_routing_get_port_mixer,
18432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018433 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18434 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018435 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18436 msm_routing_get_port_mixer,
18437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018438 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18439 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018440 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18441 msm_routing_get_port_mixer,
18442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018443 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18444 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018445 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18446 msm_routing_get_port_mixer,
18447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018448 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18449 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018450 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18451 msm_routing_get_port_mixer,
18452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018453 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18454 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018455 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18456 msm_routing_get_port_mixer,
18457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018458 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18459 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018460 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18461 msm_routing_get_port_mixer,
18462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018463 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18464 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018465 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18466 msm_routing_get_port_mixer,
18467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018468 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18469 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018470 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18471 msm_routing_get_port_mixer,
18472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018473 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18474 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018475 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18476 msm_routing_get_port_mixer,
18477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018478 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18479 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018480 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18481 msm_routing_get_port_mixer,
18482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018483 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18484 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018485 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18486 msm_routing_get_port_mixer,
18487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018488 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18489 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018490 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18491 msm_routing_get_port_mixer,
18492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018493 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18494 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018495 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18496 msm_routing_get_port_mixer,
18497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018498 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18499 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018500 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18501 msm_routing_get_port_mixer,
18502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018503 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18504 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018505 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18506 msm_routing_get_port_mixer,
18507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018508 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18509 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018510 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18511 msm_routing_get_port_mixer,
18512 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018513 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18514 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18515 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18516 msm_routing_get_port_mixer,
18517 msm_routing_put_port_mixer),
18518 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18519 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18520 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18521 msm_routing_get_port_mixer,
18522 msm_routing_put_port_mixer),
18523 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18524 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18525 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18526 msm_routing_get_port_mixer,
18527 msm_routing_put_port_mixer),
18528 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18529 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18530 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18531 msm_routing_get_port_mixer,
18532 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018533};
18534
18535static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018536 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18537 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018538 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18539 msm_routing_get_port_mixer,
18540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018541 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18542 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018543 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18544 msm_routing_get_port_mixer,
18545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018546 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18547 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018548 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18549 msm_routing_get_port_mixer,
18550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018551 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18552 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018553 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18554 msm_routing_get_port_mixer,
18555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018556 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18557 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018558 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18559 msm_routing_get_port_mixer,
18560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018561 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18562 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018563 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18564 msm_routing_get_port_mixer,
18565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018566 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18567 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018568 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18569 msm_routing_get_port_mixer,
18570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018571 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18572 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018573 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18574 msm_routing_get_port_mixer,
18575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018576 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18577 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018578 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18579 msm_routing_get_port_mixer,
18580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018581 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18582 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018583 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18584 msm_routing_get_port_mixer,
18585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018586 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18587 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018588 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18589 msm_routing_get_port_mixer,
18590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018591 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18592 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018593 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18594 msm_routing_get_port_mixer,
18595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018596 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18597 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018598 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18599 msm_routing_get_port_mixer,
18600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018601 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18602 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018603 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18604 msm_routing_get_port_mixer,
18605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018606 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18607 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018608 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18609 msm_routing_get_port_mixer,
18610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018611 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18612 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18614 msm_routing_get_port_mixer,
18615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018616 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18617 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018618 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18619 msm_routing_get_port_mixer,
18620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018621 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18622 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018623 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18624 msm_routing_get_port_mixer,
18625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018626 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18627 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018628 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18629 msm_routing_get_port_mixer,
18630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018631 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18632 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018633 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18634 msm_routing_get_port_mixer,
18635 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018636 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18637 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18638 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18639 msm_routing_get_port_mixer,
18640 msm_routing_put_port_mixer),
18641 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18642 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18643 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18644 msm_routing_get_port_mixer,
18645 msm_routing_put_port_mixer),
18646 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18647 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18648 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18649 msm_routing_get_port_mixer,
18650 msm_routing_put_port_mixer),
18651 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18652 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18653 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18654 msm_routing_get_port_mixer,
18655 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018656};
18657
18658static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018659 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18660 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018661 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18662 msm_routing_get_port_mixer,
18663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018664 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18665 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018666 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18667 msm_routing_get_port_mixer,
18668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018669 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18670 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018671 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18672 msm_routing_get_port_mixer,
18673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018674 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18675 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018676 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18677 msm_routing_get_port_mixer,
18678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018679 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18680 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018681 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18682 msm_routing_get_port_mixer,
18683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018684 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18685 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018686 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18687 msm_routing_get_port_mixer,
18688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018689 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18690 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018691 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18692 msm_routing_get_port_mixer,
18693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018694 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18695 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018696 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18697 msm_routing_get_port_mixer,
18698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018699 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18700 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018701 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18702 msm_routing_get_port_mixer,
18703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018704 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18705 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018706 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18707 msm_routing_get_port_mixer,
18708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018709 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18710 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018711 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18712 msm_routing_get_port_mixer,
18713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018714 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18715 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018716 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18717 msm_routing_get_port_mixer,
18718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018719 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18720 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018721 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18722 msm_routing_get_port_mixer,
18723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018724 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18725 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018726 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18727 msm_routing_get_port_mixer,
18728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018729 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18730 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018731 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18732 msm_routing_get_port_mixer,
18733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018734 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18735 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018736 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18737 msm_routing_get_port_mixer,
18738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018739 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18740 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018741 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18742 msm_routing_get_port_mixer,
18743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018744 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18745 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018746 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18747 msm_routing_get_port_mixer,
18748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018749 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18750 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018751 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18752 msm_routing_get_port_mixer,
18753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018754 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18755 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018756 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18757 msm_routing_get_port_mixer,
18758 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018759 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18760 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18761 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18762 msm_routing_get_port_mixer,
18763 msm_routing_put_port_mixer),
18764 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18765 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18766 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18767 msm_routing_get_port_mixer,
18768 msm_routing_put_port_mixer),
18769 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18770 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18771 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18772 msm_routing_get_port_mixer,
18773 msm_routing_put_port_mixer),
18774 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18775 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18776 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18777 msm_routing_get_port_mixer,
18778 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018779};
18780
18781static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018782 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18783 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018784 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18785 msm_routing_get_port_mixer,
18786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18788 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018789 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18790 msm_routing_get_port_mixer,
18791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018792 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18793 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018794 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18795 msm_routing_get_port_mixer,
18796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018797 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18798 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018799 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18800 msm_routing_get_port_mixer,
18801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018802 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18803 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018804 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18805 msm_routing_get_port_mixer,
18806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018807 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18808 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018809 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18810 msm_routing_get_port_mixer,
18811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018812 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18813 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018814 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18815 msm_routing_get_port_mixer,
18816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018817 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18818 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018819 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18820 msm_routing_get_port_mixer,
18821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018822 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18823 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018824 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18825 msm_routing_get_port_mixer,
18826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018827 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18828 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018829 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18830 msm_routing_get_port_mixer,
18831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018832 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18833 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018834 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18835 msm_routing_get_port_mixer,
18836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018837 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18838 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018839 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18840 msm_routing_get_port_mixer,
18841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018842 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18843 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018844 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18845 msm_routing_get_port_mixer,
18846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018847 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18848 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018849 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18850 msm_routing_get_port_mixer,
18851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018852 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18853 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018854 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18855 msm_routing_get_port_mixer,
18856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018857 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18858 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018859 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18860 msm_routing_get_port_mixer,
18861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018862 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18863 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018864 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18865 msm_routing_get_port_mixer,
18866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018867 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18868 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018869 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18870 msm_routing_get_port_mixer,
18871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018872 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18873 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018874 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18875 msm_routing_get_port_mixer,
18876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018877 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18878 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018879 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18880 msm_routing_get_port_mixer,
18881 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018882 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18883 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18884 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18885 msm_routing_get_port_mixer,
18886 msm_routing_put_port_mixer),
18887 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18888 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18889 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18890 msm_routing_get_port_mixer,
18891 msm_routing_put_port_mixer),
18892 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18893 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18894 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18895 msm_routing_get_port_mixer,
18896 msm_routing_put_port_mixer),
18897 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18898 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18899 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18900 msm_routing_get_port_mixer,
18901 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018902};
18903
Derek Chenfdcc0982018-10-02 15:14:03 -070018904static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18905 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18906 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18907 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18908 msm_routing_get_port_mixer,
18909 msm_routing_put_port_mixer),
18910};
18911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018912static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018913 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18914 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018915 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18916 msm_routing_get_port_mixer,
18917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018918 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18919 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018920 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18921 msm_routing_get_port_mixer,
18922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018923 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18924 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018925 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18926 msm_routing_get_port_mixer,
18927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018928 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18929 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018930 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18931 msm_routing_get_port_mixer,
18932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018933 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18934 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018935 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18936 msm_routing_get_port_mixer,
18937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018938 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18939 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018940 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18941 msm_routing_get_port_mixer,
18942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018943 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18944 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018945 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18946 msm_routing_get_port_mixer,
18947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018948 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18949 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018950 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18951 msm_routing_get_port_mixer,
18952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018953 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18954 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018955 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18956 msm_routing_get_port_mixer,
18957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018958 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18959 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018960 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18961 msm_routing_get_port_mixer,
18962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018963 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18964 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018965 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18966 msm_routing_get_port_mixer,
18967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018968 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18969 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018970 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18971 msm_routing_get_port_mixer,
18972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018973 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18974 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018975 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18976 msm_routing_get_port_mixer,
18977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018978 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18979 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018980 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18981 msm_routing_get_port_mixer,
18982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018983 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18984 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018985 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18986 msm_routing_get_port_mixer,
18987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018988 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18989 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018990 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18991 msm_routing_get_port_mixer,
18992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018993 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18994 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018995 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18996 msm_routing_get_port_mixer,
18997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018998 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18999 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019000 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19001 msm_routing_get_port_mixer,
19002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019003 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19004 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019005 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19006 msm_routing_get_port_mixer,
19007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019008 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19009 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019010 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19011 msm_routing_get_port_mixer,
19012 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019013 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19014 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19015 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19016 msm_routing_get_port_mixer,
19017 msm_routing_put_port_mixer),
19018 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19019 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19020 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19021 msm_routing_get_port_mixer,
19022 msm_routing_put_port_mixer),
19023 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19024 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19025 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19026 msm_routing_get_port_mixer,
19027 msm_routing_put_port_mixer),
19028 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19029 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19030 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19031 msm_routing_get_port_mixer,
19032 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019033};
19034
19035static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019036 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19037 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019038 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19039 msm_routing_get_port_mixer,
19040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019041 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19042 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019043 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19044 msm_routing_get_port_mixer,
19045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019046 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19047 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019048 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19049 msm_routing_get_port_mixer,
19050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019051 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19052 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019053 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19054 msm_routing_get_port_mixer,
19055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019056 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19057 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019058 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19059 msm_routing_get_port_mixer,
19060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019061 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19062 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019063 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19064 msm_routing_get_port_mixer,
19065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019066 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19067 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019068 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19069 msm_routing_get_port_mixer,
19070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019071 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19072 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019073 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19074 msm_routing_get_port_mixer,
19075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019076 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19077 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019078 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19079 msm_routing_get_port_mixer,
19080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019081 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19082 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019083 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19084 msm_routing_get_port_mixer,
19085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019086 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19087 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019088 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19089 msm_routing_get_port_mixer,
19090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019091 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19092 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019093 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19094 msm_routing_get_port_mixer,
19095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019096 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19097 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019098 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19099 msm_routing_get_port_mixer,
19100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019101 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19102 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019103 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19104 msm_routing_get_port_mixer,
19105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019106 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19107 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019108 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19109 msm_routing_get_port_mixer,
19110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019111 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19112 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019113 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19114 msm_routing_get_port_mixer,
19115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019116 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19117 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019118 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19119 msm_routing_get_port_mixer,
19120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019121 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19122 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019123 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19124 msm_routing_get_port_mixer,
19125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019126 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19127 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019128 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19129 msm_routing_get_port_mixer,
19130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019131 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19132 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019133 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19134 msm_routing_get_port_mixer,
19135 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019136 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19137 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19138 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19139 msm_routing_get_port_mixer,
19140 msm_routing_put_port_mixer),
19141 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19142 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19143 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19144 msm_routing_get_port_mixer,
19145 msm_routing_put_port_mixer),
19146 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19147 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19148 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19149 msm_routing_get_port_mixer,
19150 msm_routing_put_port_mixer),
19151 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19152 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19153 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19154 msm_routing_get_port_mixer,
19155 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019156};
19157
19158static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019159 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19160 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019161 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19162 msm_routing_get_port_mixer,
19163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019164 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19165 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019166 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19167 msm_routing_get_port_mixer,
19168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019169 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19170 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019171 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19172 msm_routing_get_port_mixer,
19173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019174 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19175 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019176 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19177 msm_routing_get_port_mixer,
19178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019179 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19180 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019181 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19182 msm_routing_get_port_mixer,
19183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019184 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19185 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019186 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19187 msm_routing_get_port_mixer,
19188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019189 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19190 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019191 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19192 msm_routing_get_port_mixer,
19193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019194 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19195 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019196 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19197 msm_routing_get_port_mixer,
19198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019199 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19200 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019201 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19202 msm_routing_get_port_mixer,
19203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019204 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19205 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019206 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19207 msm_routing_get_port_mixer,
19208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019209 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19210 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019211 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19212 msm_routing_get_port_mixer,
19213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019214 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19215 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019216 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19217 msm_routing_get_port_mixer,
19218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019219 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19220 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019221 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19222 msm_routing_get_port_mixer,
19223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019224 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19225 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019226 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19227 msm_routing_get_port_mixer,
19228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019229 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19230 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019231 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19232 msm_routing_get_port_mixer,
19233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019234 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19235 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019236 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19237 msm_routing_get_port_mixer,
19238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019239 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19240 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019241 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19242 msm_routing_get_port_mixer,
19243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019244 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19245 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019246 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19247 msm_routing_get_port_mixer,
19248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019249 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19250 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019251 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19252 msm_routing_get_port_mixer,
19253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019254 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19255 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019256 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19257 msm_routing_get_port_mixer,
19258 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019259 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19260 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19261 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19262 msm_routing_get_port_mixer,
19263 msm_routing_put_port_mixer),
19264 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19265 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19266 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19267 msm_routing_get_port_mixer,
19268 msm_routing_put_port_mixer),
19269 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19270 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19271 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19272 msm_routing_get_port_mixer,
19273 msm_routing_put_port_mixer),
19274 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19275 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19276 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19277 msm_routing_get_port_mixer,
19278 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019279};
19280
19281static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019282 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19283 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019284 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19285 msm_routing_get_port_mixer,
19286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019287 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19288 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19290 msm_routing_get_port_mixer,
19291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019292 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19293 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019294 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19295 msm_routing_get_port_mixer,
19296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019297 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19298 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019299 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19300 msm_routing_get_port_mixer,
19301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019302 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19303 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019304 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19305 msm_routing_get_port_mixer,
19306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19308 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019309 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19310 msm_routing_get_port_mixer,
19311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019312 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19313 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019314 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19315 msm_routing_get_port_mixer,
19316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019317 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19318 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019319 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19320 msm_routing_get_port_mixer,
19321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019322 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19323 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019324 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19325 msm_routing_get_port_mixer,
19326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019327 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19328 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019329 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19330 msm_routing_get_port_mixer,
19331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019332 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19333 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019334 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19335 msm_routing_get_port_mixer,
19336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019337 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19338 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019339 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19340 msm_routing_get_port_mixer,
19341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019342 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19343 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019344 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19345 msm_routing_get_port_mixer,
19346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019347 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19348 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019349 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19350 msm_routing_get_port_mixer,
19351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019352 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19353 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019354 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19355 msm_routing_get_port_mixer,
19356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019357 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19358 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019359 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19360 msm_routing_get_port_mixer,
19361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019362 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19363 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019364 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19365 msm_routing_get_port_mixer,
19366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019367 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19368 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019369 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19370 msm_routing_get_port_mixer,
19371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019372 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19373 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019374 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19375 msm_routing_get_port_mixer,
19376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019377 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19378 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019379 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19380 msm_routing_get_port_mixer,
19381 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019382 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19383 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19384 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19385 msm_routing_get_port_mixer,
19386 msm_routing_put_port_mixer),
19387 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19388 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19389 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19390 msm_routing_get_port_mixer,
19391 msm_routing_put_port_mixer),
19392 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19393 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19394 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19395 msm_routing_get_port_mixer,
19396 msm_routing_put_port_mixer),
19397 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19398 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19399 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19400 msm_routing_get_port_mixer,
19401 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019402};
19403
19404static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19406 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019407 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19408 msm_routing_get_port_mixer,
19409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019410 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19411 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019412 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19413 msm_routing_get_port_mixer,
19414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019415 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19416 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019417 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19418 msm_routing_get_port_mixer,
19419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019420 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19421 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019422 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19423 msm_routing_get_port_mixer,
19424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019425 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19426 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019427 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19428 msm_routing_get_port_mixer,
19429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019430 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19431 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019432 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19433 msm_routing_get_port_mixer,
19434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019435 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19436 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019437 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19438 msm_routing_get_port_mixer,
19439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019440 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19441 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019442 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19443 msm_routing_get_port_mixer,
19444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019445 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19446 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019447 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19448 msm_routing_get_port_mixer,
19449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019450 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19451 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019452 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19453 msm_routing_get_port_mixer,
19454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019455 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19456 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019457 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19458 msm_routing_get_port_mixer,
19459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019460 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19461 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019462 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19463 msm_routing_get_port_mixer,
19464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019465 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19466 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019467 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19468 msm_routing_get_port_mixer,
19469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019470 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19471 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019472 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19473 msm_routing_get_port_mixer,
19474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019475 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19476 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019477 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19478 msm_routing_get_port_mixer,
19479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019480 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19481 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019482 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19483 msm_routing_get_port_mixer,
19484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019485 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19486 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019487 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19488 msm_routing_get_port_mixer,
19489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019490 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19491 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019492 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19493 msm_routing_get_port_mixer,
19494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019495 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19496 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019497 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19498 msm_routing_get_port_mixer,
19499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019500 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19501 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019502 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19503 msm_routing_get_port_mixer,
19504 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019505 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19506 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19507 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19508 msm_routing_get_port_mixer,
19509 msm_routing_put_port_mixer),
19510 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19511 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19512 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19513 msm_routing_get_port_mixer,
19514 msm_routing_put_port_mixer),
19515 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19516 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19517 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19518 msm_routing_get_port_mixer,
19519 msm_routing_put_port_mixer),
19520 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19521 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19522 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19523 msm_routing_get_port_mixer,
19524 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019525};
19526
19527static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019528 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19529 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019530 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19531 msm_routing_get_port_mixer,
19532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019533 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019535 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19536 msm_routing_get_port_mixer,
19537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019538 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19539 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019540 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19541 msm_routing_get_port_mixer,
19542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019543 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19544 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019545 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19546 msm_routing_get_port_mixer,
19547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019548 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19549 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019550 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19551 msm_routing_get_port_mixer,
19552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019553 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19554 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019555 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19556 msm_routing_get_port_mixer,
19557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019558 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19559 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019560 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19561 msm_routing_get_port_mixer,
19562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019563 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19564 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019565 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19566 msm_routing_get_port_mixer,
19567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019568 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19569 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019570 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19571 msm_routing_get_port_mixer,
19572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019573 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19574 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019575 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19576 msm_routing_get_port_mixer,
19577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019578 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19579 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019580 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19581 msm_routing_get_port_mixer,
19582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019583 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19584 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019585 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19586 msm_routing_get_port_mixer,
19587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019588 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19589 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019590 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19591 msm_routing_get_port_mixer,
19592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019593 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19594 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019595 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19596 msm_routing_get_port_mixer,
19597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019598 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19599 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019600 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19601 msm_routing_get_port_mixer,
19602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019603 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19604 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019605 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19606 msm_routing_get_port_mixer,
19607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019608 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19609 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019610 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19611 msm_routing_get_port_mixer,
19612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019613 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19614 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019615 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19616 msm_routing_get_port_mixer,
19617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019618 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19619 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019620 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19621 msm_routing_get_port_mixer,
19622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19624 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019625 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19626 msm_routing_get_port_mixer,
19627 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019628 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19629 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19630 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19631 msm_routing_get_port_mixer,
19632 msm_routing_put_port_mixer),
19633 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19634 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19635 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19636 msm_routing_get_port_mixer,
19637 msm_routing_put_port_mixer),
19638 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19639 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19640 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19641 msm_routing_get_port_mixer,
19642 msm_routing_put_port_mixer),
19643 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19644 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19645 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19646 msm_routing_get_port_mixer,
19647 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019648};
19649
19650static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019651 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19652 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019653 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19654 msm_routing_get_port_mixer,
19655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019656 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19657 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019658 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19659 msm_routing_get_port_mixer,
19660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019661 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19662 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019663 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19664 msm_routing_get_port_mixer,
19665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019666 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19667 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019668 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19669 msm_routing_get_port_mixer,
19670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019671 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19672 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019673 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19674 msm_routing_get_port_mixer,
19675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019676 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19677 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019678 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19679 msm_routing_get_port_mixer,
19680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019681 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19682 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019683 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19684 msm_routing_get_port_mixer,
19685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019686 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19687 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019688 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19689 msm_routing_get_port_mixer,
19690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019691 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19692 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019693 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19694 msm_routing_get_port_mixer,
19695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019696 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19697 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019698 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19699 msm_routing_get_port_mixer,
19700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019701 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19702 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019703 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19704 msm_routing_get_port_mixer,
19705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019706 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19707 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019708 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19709 msm_routing_get_port_mixer,
19710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019711 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19712 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019713 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19714 msm_routing_get_port_mixer,
19715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019716 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19717 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019718 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19719 msm_routing_get_port_mixer,
19720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019721 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19722 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019723 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19724 msm_routing_get_port_mixer,
19725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019726 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19727 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19729 msm_routing_get_port_mixer,
19730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19732 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019733 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19734 msm_routing_get_port_mixer,
19735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019736 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19737 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019738 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19739 msm_routing_get_port_mixer,
19740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019741 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19742 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019743 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19744 msm_routing_get_port_mixer,
19745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019746 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19747 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019748 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19749 msm_routing_get_port_mixer,
19750 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019751 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19752 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19753 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19754 msm_routing_get_port_mixer,
19755 msm_routing_put_port_mixer),
19756 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19757 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19758 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19759 msm_routing_get_port_mixer,
19760 msm_routing_put_port_mixer),
19761 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19762 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19763 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19764 msm_routing_get_port_mixer,
19765 msm_routing_put_port_mixer),
19766 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19767 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19768 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19769 msm_routing_get_port_mixer,
19770 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019771};
19772
19773static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019774 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19775 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019776 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19777 msm_routing_get_port_mixer,
19778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019779 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19780 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019781 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19782 msm_routing_get_port_mixer,
19783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019784 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19785 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019786 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19787 msm_routing_get_port_mixer,
19788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019789 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19790 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019791 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19792 msm_routing_get_port_mixer,
19793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019794 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19795 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019796 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19797 msm_routing_get_port_mixer,
19798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019799 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19800 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019801 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19802 msm_routing_get_port_mixer,
19803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19805 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019806 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19807 msm_routing_get_port_mixer,
19808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019809 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19810 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019811 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19812 msm_routing_get_port_mixer,
19813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019814 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19815 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019816 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19817 msm_routing_get_port_mixer,
19818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019819 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19820 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019821 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19822 msm_routing_get_port_mixer,
19823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019824 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19825 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019826 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19827 msm_routing_get_port_mixer,
19828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019829 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19830 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019831 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19832 msm_routing_get_port_mixer,
19833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019834 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19835 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019836 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19837 msm_routing_get_port_mixer,
19838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019839 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19840 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019841 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19842 msm_routing_get_port_mixer,
19843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019844 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19845 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019846 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19847 msm_routing_get_port_mixer,
19848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019849 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19850 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019851 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19852 msm_routing_get_port_mixer,
19853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019854 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19855 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019856 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19857 msm_routing_get_port_mixer,
19858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019859 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19860 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019861 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19862 msm_routing_get_port_mixer,
19863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019864 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19865 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019866 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19867 msm_routing_get_port_mixer,
19868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019869 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19870 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019871 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19872 msm_routing_get_port_mixer,
19873 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019874 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19875 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19876 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19877 msm_routing_get_port_mixer,
19878 msm_routing_put_port_mixer),
19879 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19880 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19881 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19882 msm_routing_get_port_mixer,
19883 msm_routing_put_port_mixer),
19884 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19885 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19886 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19887 msm_routing_get_port_mixer,
19888 msm_routing_put_port_mixer),
19889 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19890 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19891 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19892 msm_routing_get_port_mixer,
19893 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019894};
19895
Derek Chenb9048cb2019-03-07 14:54:13 -050019896static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19897 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19898 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19899 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19900 msm_routing_get_port_mixer,
19901 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019902 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19903 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19904 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19905 msm_routing_get_port_mixer,
19906 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019907};
19908
Rohit Kumara5077932017-09-10 22:05:05 +053019909static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019910 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19911 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019912 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19913 msm_routing_get_port_mixer,
19914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019915 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19916 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019917 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19918 msm_routing_get_port_mixer,
19919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019920 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19921 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019922 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19923 msm_routing_get_port_mixer,
19924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019925 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19926 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019927 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19928 msm_routing_get_port_mixer,
19929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019930 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19931 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019932 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19933 msm_routing_get_port_mixer,
19934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019935 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19936 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019937 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19938 msm_routing_get_port_mixer,
19939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019940 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19941 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019942 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19943 msm_routing_get_port_mixer,
19944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019945 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19946 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019947 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19948 msm_routing_get_port_mixer,
19949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019950 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19951 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019952 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19953 msm_routing_get_port_mixer,
19954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019955 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19956 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019957 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19958 msm_routing_get_port_mixer,
19959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019960 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19961 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019962 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19963 msm_routing_get_port_mixer,
19964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019965 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19966 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019967 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19968 msm_routing_get_port_mixer,
19969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019970 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19971 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019972 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19973 msm_routing_get_port_mixer,
19974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019975 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19976 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019977 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19978 msm_routing_get_port_mixer,
19979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019980 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19981 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019982 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19983 msm_routing_get_port_mixer,
19984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019985 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19986 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019987 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19988 msm_routing_get_port_mixer,
19989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019990 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19991 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019992 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19993 msm_routing_get_port_mixer,
19994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019995 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19996 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019997 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19998 msm_routing_get_port_mixer,
19999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020000 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20001 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020002 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20003 msm_routing_get_port_mixer,
20004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020005 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20006 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020007 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20008 msm_routing_get_port_mixer,
20009 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020010 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20011 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20012 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20013 msm_routing_get_port_mixer,
20014 msm_routing_put_port_mixer),
20015 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20017 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20018 msm_routing_get_port_mixer,
20019 msm_routing_put_port_mixer),
20020 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20021 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20022 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20023 msm_routing_get_port_mixer,
20024 msm_routing_put_port_mixer),
20025 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20026 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20027 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20028 msm_routing_get_port_mixer,
20029 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020030};
20031
20032static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020033 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20034 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020035 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20036 msm_routing_get_port_mixer,
20037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020038 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20039 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020040 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20041 msm_routing_get_port_mixer,
20042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020043 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20044 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020045 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20046 msm_routing_get_port_mixer,
20047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020048 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20049 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020050 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20051 msm_routing_get_port_mixer,
20052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020053 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20054 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020055 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20056 msm_routing_get_port_mixer,
20057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020058 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20059 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020060 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20061 msm_routing_get_port_mixer,
20062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020063 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20064 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020065 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20066 msm_routing_get_port_mixer,
20067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020068 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20069 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020070 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20071 msm_routing_get_port_mixer,
20072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020073 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20074 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020075 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20076 msm_routing_get_port_mixer,
20077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020078 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20079 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020080 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20081 msm_routing_get_port_mixer,
20082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020083 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20084 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020085 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20086 msm_routing_get_port_mixer,
20087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020088 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20089 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020090 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20091 msm_routing_get_port_mixer,
20092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020093 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20094 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020095 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20096 msm_routing_get_port_mixer,
20097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020098 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20099 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020100 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20101 msm_routing_get_port_mixer,
20102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020103 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20104 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020105 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20106 msm_routing_get_port_mixer,
20107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020108 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20109 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020110 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20111 msm_routing_get_port_mixer,
20112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020113 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20114 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020115 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20116 msm_routing_get_port_mixer,
20117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020118 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20119 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020120 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20121 msm_routing_get_port_mixer,
20122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020123 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20124 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020125 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20126 msm_routing_get_port_mixer,
20127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020128 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20129 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020130 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20131 msm_routing_get_port_mixer,
20132 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020133 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20134 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20135 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20136 msm_routing_get_port_mixer,
20137 msm_routing_put_port_mixer),
20138 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20139 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20140 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20141 msm_routing_get_port_mixer,
20142 msm_routing_put_port_mixer),
20143 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20144 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20145 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20146 msm_routing_get_port_mixer,
20147 msm_routing_put_port_mixer),
20148 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20149 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20150 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20151 msm_routing_get_port_mixer,
20152 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020153};
20154
20155static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020156 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20157 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020158 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20159 msm_routing_get_port_mixer,
20160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020161 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20162 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020163 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20164 msm_routing_get_port_mixer,
20165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020166 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20167 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020168 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20169 msm_routing_get_port_mixer,
20170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020171 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20172 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020173 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20174 msm_routing_get_port_mixer,
20175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020176 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20177 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020178 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20179 msm_routing_get_port_mixer,
20180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020181 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20182 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020183 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20184 msm_routing_get_port_mixer,
20185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020186 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20187 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020188 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20189 msm_routing_get_port_mixer,
20190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020191 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20192 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020193 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20194 msm_routing_get_port_mixer,
20195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020196 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20197 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020198 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20199 msm_routing_get_port_mixer,
20200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020201 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20202 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020203 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20204 msm_routing_get_port_mixer,
20205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020206 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20207 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020208 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20209 msm_routing_get_port_mixer,
20210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020211 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20212 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020213 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20214 msm_routing_get_port_mixer,
20215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020216 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20217 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020218 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20219 msm_routing_get_port_mixer,
20220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020221 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20222 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020223 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20224 msm_routing_get_port_mixer,
20225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020226 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20227 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020228 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20229 msm_routing_get_port_mixer,
20230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020231 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20232 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020233 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20234 msm_routing_get_port_mixer,
20235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020236 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20237 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020238 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20239 msm_routing_get_port_mixer,
20240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020241 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20242 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020243 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20244 msm_routing_get_port_mixer,
20245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020246 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20247 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020248 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20249 msm_routing_get_port_mixer,
20250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020251 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20252 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020253 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20254 msm_routing_get_port_mixer,
20255 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020256 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20257 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20258 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20259 msm_routing_get_port_mixer,
20260 msm_routing_put_port_mixer),
20261 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20262 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20263 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20264 msm_routing_get_port_mixer,
20265 msm_routing_put_port_mixer),
20266 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20267 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20268 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20269 msm_routing_get_port_mixer,
20270 msm_routing_put_port_mixer),
20271 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20272 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20273 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20274 msm_routing_get_port_mixer,
20275 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020276};
20277
20278static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020279 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20280 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020281 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20282 msm_routing_get_port_mixer,
20283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020284 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20285 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020286 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20287 msm_routing_get_port_mixer,
20288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020289 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20290 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020291 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20292 msm_routing_get_port_mixer,
20293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020294 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20295 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020296 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20297 msm_routing_get_port_mixer,
20298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020299 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20300 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020301 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20302 msm_routing_get_port_mixer,
20303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020304 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20305 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020306 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20307 msm_routing_get_port_mixer,
20308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020309 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20310 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020311 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20312 msm_routing_get_port_mixer,
20313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020314 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20315 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020316 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20317 msm_routing_get_port_mixer,
20318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020319 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020321 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20322 msm_routing_get_port_mixer,
20323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020324 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20325 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020326 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20327 msm_routing_get_port_mixer,
20328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020329 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20330 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020331 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20332 msm_routing_get_port_mixer,
20333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020334 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20335 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020336 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20337 msm_routing_get_port_mixer,
20338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020339 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20340 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020341 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20342 msm_routing_get_port_mixer,
20343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020344 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20345 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020346 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20347 msm_routing_get_port_mixer,
20348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020349 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20350 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020351 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20352 msm_routing_get_port_mixer,
20353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020354 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20355 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020356 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20357 msm_routing_get_port_mixer,
20358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020359 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20360 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020361 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20362 msm_routing_get_port_mixer,
20363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020364 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20365 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020366 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20367 msm_routing_get_port_mixer,
20368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020369 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20370 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020371 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20372 msm_routing_get_port_mixer,
20373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020374 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20375 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020376 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20377 msm_routing_get_port_mixer,
20378 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020379 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20380 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20381 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20382 msm_routing_get_port_mixer,
20383 msm_routing_put_port_mixer),
20384 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20385 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20386 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20387 msm_routing_get_port_mixer,
20388 msm_routing_put_port_mixer),
20389 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20390 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20391 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20392 msm_routing_get_port_mixer,
20393 msm_routing_put_port_mixer),
20394 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20395 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20396 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20397 msm_routing_get_port_mixer,
20398 msm_routing_put_port_mixer),
20399};
20400
20401static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20402 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20403 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20404 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20405 msm_routing_get_port_mixer,
20406 msm_routing_put_port_mixer),
20407 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20408 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20409 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20410 msm_routing_get_port_mixer,
20411 msm_routing_put_port_mixer),
20412 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20413 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20414 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20415 msm_routing_get_port_mixer,
20416 msm_routing_put_port_mixer),
20417 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20418 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20419 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20420 msm_routing_get_port_mixer,
20421 msm_routing_put_port_mixer),
20422 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20423 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20424 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20425 msm_routing_get_port_mixer,
20426 msm_routing_put_port_mixer),
20427 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20428 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20429 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20430 msm_routing_get_port_mixer,
20431 msm_routing_put_port_mixer),
20432 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20433 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20434 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20435 msm_routing_get_port_mixer,
20436 msm_routing_put_port_mixer),
20437 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20438 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20439 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20440 msm_routing_get_port_mixer,
20441 msm_routing_put_port_mixer),
20442 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20443 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20444 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20445 msm_routing_get_port_mixer,
20446 msm_routing_put_port_mixer),
20447 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20448 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20449 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20450 msm_routing_get_port_mixer,
20451 msm_routing_put_port_mixer),
20452 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20453 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20454 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20455 msm_routing_get_port_mixer,
20456 msm_routing_put_port_mixer),
20457 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20458 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20459 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20460 msm_routing_get_port_mixer,
20461 msm_routing_put_port_mixer),
20462 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20463 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20464 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20465 msm_routing_get_port_mixer,
20466 msm_routing_put_port_mixer),
20467 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20468 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20469 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20470 msm_routing_get_port_mixer,
20471 msm_routing_put_port_mixer),
20472 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20473 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20474 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20475 msm_routing_get_port_mixer,
20476 msm_routing_put_port_mixer),
20477 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20478 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20479 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20480 msm_routing_get_port_mixer,
20481 msm_routing_put_port_mixer),
20482 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20483 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20484 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20485 msm_routing_get_port_mixer,
20486 msm_routing_put_port_mixer),
20487 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20488 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20489 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20490 msm_routing_get_port_mixer,
20491 msm_routing_put_port_mixer),
20492 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20493 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20494 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20495 msm_routing_get_port_mixer,
20496 msm_routing_put_port_mixer),
20497 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20498 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20499 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20500 msm_routing_get_port_mixer,
20501 msm_routing_put_port_mixer),
20502 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20503 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20504 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20505 msm_routing_get_port_mixer,
20506 msm_routing_put_port_mixer),
20507 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20508 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20509 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20510 msm_routing_get_port_mixer,
20511 msm_routing_put_port_mixer),
20512 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20513 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20514 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20515 msm_routing_get_port_mixer,
20516 msm_routing_put_port_mixer),
20517 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20518 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20519 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20520 msm_routing_get_port_mixer,
20521 msm_routing_put_port_mixer),
20522};
20523
20524static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20525 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20526 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20527 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20528 msm_routing_get_port_mixer,
20529 msm_routing_put_port_mixer),
20530 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20531 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20532 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20533 msm_routing_get_port_mixer,
20534 msm_routing_put_port_mixer),
20535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20536 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20537 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20538 msm_routing_get_port_mixer,
20539 msm_routing_put_port_mixer),
20540 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20541 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20542 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20543 msm_routing_get_port_mixer,
20544 msm_routing_put_port_mixer),
20545 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20546 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20547 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20548 msm_routing_get_port_mixer,
20549 msm_routing_put_port_mixer),
20550 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20551 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20552 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20553 msm_routing_get_port_mixer,
20554 msm_routing_put_port_mixer),
20555 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20556 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20557 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20558 msm_routing_get_port_mixer,
20559 msm_routing_put_port_mixer),
20560 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20561 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20562 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20563 msm_routing_get_port_mixer,
20564 msm_routing_put_port_mixer),
20565 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20566 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20567 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20568 msm_routing_get_port_mixer,
20569 msm_routing_put_port_mixer),
20570 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20571 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20572 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20573 msm_routing_get_port_mixer,
20574 msm_routing_put_port_mixer),
20575 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20576 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20577 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20578 msm_routing_get_port_mixer,
20579 msm_routing_put_port_mixer),
20580 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20581 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20582 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20583 msm_routing_get_port_mixer,
20584 msm_routing_put_port_mixer),
20585 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20586 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20587 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20588 msm_routing_get_port_mixer,
20589 msm_routing_put_port_mixer),
20590 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20591 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20592 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20593 msm_routing_get_port_mixer,
20594 msm_routing_put_port_mixer),
20595 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20596 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20597 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20598 msm_routing_get_port_mixer,
20599 msm_routing_put_port_mixer),
20600 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20601 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20602 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20603 msm_routing_get_port_mixer,
20604 msm_routing_put_port_mixer),
20605 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20606 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20607 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20608 msm_routing_get_port_mixer,
20609 msm_routing_put_port_mixer),
20610 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20611 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20612 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20613 msm_routing_get_port_mixer,
20614 msm_routing_put_port_mixer),
20615 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20616 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20617 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20618 msm_routing_get_port_mixer,
20619 msm_routing_put_port_mixer),
20620 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20621 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20622 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20623 msm_routing_get_port_mixer,
20624 msm_routing_put_port_mixer),
20625 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20626 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20627 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20628 msm_routing_get_port_mixer,
20629 msm_routing_put_port_mixer),
20630 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20631 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20632 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20633 msm_routing_get_port_mixer,
20634 msm_routing_put_port_mixer),
20635 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20636 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20637 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20638 msm_routing_get_port_mixer,
20639 msm_routing_put_port_mixer),
20640 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20641 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20642 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20643 msm_routing_get_port_mixer,
20644 msm_routing_put_port_mixer),
20645};
20646
20647static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20648 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20649 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20650 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20651 msm_routing_get_port_mixer,
20652 msm_routing_put_port_mixer),
20653 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20654 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20655 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20656 msm_routing_get_port_mixer,
20657 msm_routing_put_port_mixer),
20658 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20659 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20660 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20661 msm_routing_get_port_mixer,
20662 msm_routing_put_port_mixer),
20663 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20664 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20665 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20666 msm_routing_get_port_mixer,
20667 msm_routing_put_port_mixer),
20668 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20669 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20670 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20671 msm_routing_get_port_mixer,
20672 msm_routing_put_port_mixer),
20673 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20674 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20675 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20676 msm_routing_get_port_mixer,
20677 msm_routing_put_port_mixer),
20678 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20679 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20680 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20681 msm_routing_get_port_mixer,
20682 msm_routing_put_port_mixer),
20683 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20684 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20685 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20686 msm_routing_get_port_mixer,
20687 msm_routing_put_port_mixer),
20688 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20689 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20690 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20691 msm_routing_get_port_mixer,
20692 msm_routing_put_port_mixer),
20693 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20694 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20695 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20696 msm_routing_get_port_mixer,
20697 msm_routing_put_port_mixer),
20698 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20699 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20700 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20701 msm_routing_get_port_mixer,
20702 msm_routing_put_port_mixer),
20703 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20704 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20705 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20706 msm_routing_get_port_mixer,
20707 msm_routing_put_port_mixer),
20708 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20709 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20710 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20711 msm_routing_get_port_mixer,
20712 msm_routing_put_port_mixer),
20713 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20714 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20715 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20716 msm_routing_get_port_mixer,
20717 msm_routing_put_port_mixer),
20718 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20719 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20720 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20721 msm_routing_get_port_mixer,
20722 msm_routing_put_port_mixer),
20723 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20724 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20725 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20726 msm_routing_get_port_mixer,
20727 msm_routing_put_port_mixer),
20728 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20729 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20730 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20731 msm_routing_get_port_mixer,
20732 msm_routing_put_port_mixer),
20733 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20734 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20735 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20736 msm_routing_get_port_mixer,
20737 msm_routing_put_port_mixer),
20738 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20739 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20740 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20741 msm_routing_get_port_mixer,
20742 msm_routing_put_port_mixer),
20743 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20744 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20745 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20746 msm_routing_get_port_mixer,
20747 msm_routing_put_port_mixer),
20748 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20749 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20750 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20751 msm_routing_get_port_mixer,
20752 msm_routing_put_port_mixer),
20753 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20754 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20755 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20756 msm_routing_get_port_mixer,
20757 msm_routing_put_port_mixer),
20758 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20759 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20760 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20761 msm_routing_get_port_mixer,
20762 msm_routing_put_port_mixer),
20763 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20764 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20765 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20766 msm_routing_get_port_mixer,
20767 msm_routing_put_port_mixer),
20768};
20769
20770static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20771 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20772 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20773 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20774 msm_routing_get_port_mixer,
20775 msm_routing_put_port_mixer),
20776 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20777 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20778 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20779 msm_routing_get_port_mixer,
20780 msm_routing_put_port_mixer),
20781 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20782 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20783 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20784 msm_routing_get_port_mixer,
20785 msm_routing_put_port_mixer),
20786 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20787 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20788 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20789 msm_routing_get_port_mixer,
20790 msm_routing_put_port_mixer),
20791 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20792 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20793 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20794 msm_routing_get_port_mixer,
20795 msm_routing_put_port_mixer),
20796 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20797 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20798 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20799 msm_routing_get_port_mixer,
20800 msm_routing_put_port_mixer),
20801 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20802 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20803 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20804 msm_routing_get_port_mixer,
20805 msm_routing_put_port_mixer),
20806 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20807 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20808 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20809 msm_routing_get_port_mixer,
20810 msm_routing_put_port_mixer),
20811 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20812 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20813 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20814 msm_routing_get_port_mixer,
20815 msm_routing_put_port_mixer),
20816 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20817 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20818 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20819 msm_routing_get_port_mixer,
20820 msm_routing_put_port_mixer),
20821 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20822 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20823 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20824 msm_routing_get_port_mixer,
20825 msm_routing_put_port_mixer),
20826 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20827 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20828 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20829 msm_routing_get_port_mixer,
20830 msm_routing_put_port_mixer),
20831 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20832 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20833 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20834 msm_routing_get_port_mixer,
20835 msm_routing_put_port_mixer),
20836 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20837 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20838 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20839 msm_routing_get_port_mixer,
20840 msm_routing_put_port_mixer),
20841 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20842 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20843 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20844 msm_routing_get_port_mixer,
20845 msm_routing_put_port_mixer),
20846 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20847 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20848 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20849 msm_routing_get_port_mixer,
20850 msm_routing_put_port_mixer),
20851 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20852 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20853 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20854 msm_routing_get_port_mixer,
20855 msm_routing_put_port_mixer),
20856 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20857 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20858 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20859 msm_routing_get_port_mixer,
20860 msm_routing_put_port_mixer),
20861 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20862 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20863 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20864 msm_routing_get_port_mixer,
20865 msm_routing_put_port_mixer),
20866 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20867 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20868 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20869 msm_routing_get_port_mixer,
20870 msm_routing_put_port_mixer),
20871 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20872 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20873 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20874 msm_routing_get_port_mixer,
20875 msm_routing_put_port_mixer),
20876 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20877 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20878 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20879 msm_routing_get_port_mixer,
20880 msm_routing_put_port_mixer),
20881 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20882 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20883 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20884 msm_routing_get_port_mixer,
20885 msm_routing_put_port_mixer),
20886 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20887 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20888 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20889 msm_routing_get_port_mixer,
20890 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020891};
20892
Han Lu7b6c5882019-06-09 16:03:21 +080020893static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020894 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20895 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20896 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20897 msm_routing_get_port_mixer,
20898 msm_routing_put_port_mixer),
20899 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20900 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20901 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20902 msm_routing_get_port_mixer,
20903 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020904 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20905 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20906 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20907 msm_routing_get_port_mixer,
20908 msm_routing_put_port_mixer),
20909};
20910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020912 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20913 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020916 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20917 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020918 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020920 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20921 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020922 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020924 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20925 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020926 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020928 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20929 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020930 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20931 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020932 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20933 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20934 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020936 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20937 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020938 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020940 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20941 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020942 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20943 msm_routing_put_port_mixer),
20944};
20945
20946static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020947 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20948 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020951 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20952 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020953 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020955 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20956 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020957 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020959 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20960 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020961 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020963 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20964 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020965 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20966 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020967 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20968 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20969 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020971 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20972 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020973 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020975 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20976 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020977 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020979 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20980 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020983 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20984 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020985 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20986 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020987};
20988
20989static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020990 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20991 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020992 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20993 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020994 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20995 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020996 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20997 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020998 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20999 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021000 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21001 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021002 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21003 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021004 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21005 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021006 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21007 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021008 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21009 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021010 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21011 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021012 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21013 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021014 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21015 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021016 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21017 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021018 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21019 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021020 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21021 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21024 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21025 msm_routing_put_listen_mixer),
21026 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21027 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21028 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21029 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021030 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21031 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21032 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21033 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021034 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21036 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21037 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021038 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21039 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21040 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21041 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021042 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21043 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21044 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21045 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021046};
21047
21048static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021049 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21050 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021051 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21052 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021053 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
21054 SND_SOC_NOPM,
21055 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021056 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21057 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021058 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21059 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021060 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21061 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021062 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21063 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021064 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21065 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021066 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21067 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021068 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21069 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021070 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21071 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021072 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21073 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021074 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21075 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021076 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21077 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021078 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21079 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021080 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21081 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021082 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21083 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21084 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21085 msm_routing_put_listen_mixer),
21086 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21087 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21088 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21089 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021090 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21091 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21092 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21093 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21096 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21097 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021098 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21099 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21100 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21101 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021102 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21103 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21104 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21105 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021106};
21107
21108static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021109 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21110 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021111 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21112 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021113 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21114 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021115 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21116 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021117 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21118 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021119 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21120 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021121 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21122 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021123 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21124 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021125 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21126 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021127 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21128 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021129 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21130 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021131 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21132 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021133 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21134 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021135 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21136 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021137 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21138 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021139 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21140 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021141 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21142 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21143 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21144 msm_routing_put_listen_mixer),
21145 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21146 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21147 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21148 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021149 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21150 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21151 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21152 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21155 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21156 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021157 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21158 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21159 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21160 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021161 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21162 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21163 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21164 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021165};
21166
21167static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021168 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21169 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021170 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21171 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021172 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21173 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021174 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21175 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021176 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21177 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021178 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21179 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021180 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21181 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021182 MSM_FRONTEND_DAI_LSM4, 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_5_TX", SND_SOC_NOPM,
21185 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021186 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21187 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021188 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21189 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021190 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21191 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021192 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21193 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021194 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21195 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021196 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21197 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021198 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21199 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021200 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21201 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21202 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21203 msm_routing_put_listen_mixer),
21204 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21205 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21206 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21207 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021208 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21209 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21210 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21211 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021212 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21213 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21214 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21215 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021216 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21217 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21218 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21219 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021220 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21221 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21222 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21223 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021224};
21225
21226static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021227 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21228 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021229 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21230 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021231 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21232 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021233 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21234 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021235 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21236 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021237 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21238 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021239 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21240 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021241 MSM_FRONTEND_DAI_LSM5, 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_5_TX", SND_SOC_NOPM,
21244 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021245 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21246 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021247 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21248 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021249 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21250 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021251 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21252 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021253 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21254 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021255 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21256 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021257 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21258 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021259 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21260 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21261 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21262 msm_routing_put_listen_mixer),
21263 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21264 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21265 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21266 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021267 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21268 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21269 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21270 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21273 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21274 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021275 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21276 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21277 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21278 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021279 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21280 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21281 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21282 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021283};
21284
21285static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021286 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21287 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021288 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21289 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021290 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21291 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021292 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21293 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021294 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21295 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021296 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21297 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021298 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21299 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021300 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21301 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021302 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21303 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021304 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21305 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021306 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21307 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021308 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21309 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021310 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21311 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021312 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21313 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021314 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21315 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021316 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21317 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021318 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21319 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21320 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21321 msm_routing_put_listen_mixer),
21322 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21323 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21324 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21325 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021326 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21327 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21328 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21329 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021330 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21331 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21332 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21333 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021334 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21335 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21336 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21337 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021338 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21339 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21340 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21341 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021342};
21343
21344static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021345 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21346 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021347 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21348 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021349 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21350 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21352 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021353 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21354 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021355 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21356 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021357 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21358 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21360 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021361 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21362 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021363 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21364 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021365 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21366 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021367 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21368 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021369 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21370 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021371 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21372 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021373 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21374 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021375 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21376 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021377 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21378 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21379 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21380 msm_routing_put_listen_mixer),
21381 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21382 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21383 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21384 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021385 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21386 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21387 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21388 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21391 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21392 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021393 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21394 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21395 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21396 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021397 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21398 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21399 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21400 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021401};
21402
21403static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021404 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21405 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021406 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21407 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021408 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21409 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021410 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21411 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021412 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21413 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021414 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21415 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021416 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21417 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021418 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21419 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021420 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21421 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021422 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21423 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021424 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21425 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021426 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21427 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021428 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21429 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021430 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21431 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021432 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21433 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21435 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021436 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21437 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21438 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21439 msm_routing_put_listen_mixer),
21440 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21441 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21442 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21443 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021444 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21445 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21446 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21447 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021448 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21449 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21450 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21451 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021452 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21453 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21454 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21455 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021456 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21457 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21458 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21459 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021460};
21461
21462static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21463 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21464 0, 1, 0, msm_routing_get_switch_mixer,
21465 msm_routing_put_switch_mixer);
21466
21467static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21468 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21469 0, 1, 0, msm_routing_get_switch_mixer,
21470 msm_routing_put_switch_mixer);
21471
21472static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21473 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21474 0, 1, 0, msm_routing_get_switch_mixer,
21475 msm_routing_put_switch_mixer);
21476
21477static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21478 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21479 0, 1, 0, msm_routing_get_switch_mixer,
21480 msm_routing_put_switch_mixer);
21481
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021482static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21483 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21484 0, 1, 0, msm_routing_get_switch_mixer,
21485 msm_routing_put_switch_mixer);
21486
21487static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021488 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21489 0, 1, 0, msm_routing_get_switch_mixer,
21490 msm_routing_put_switch_mixer);
21491
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021492static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21493 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21494 0, 1, 0, msm_routing_get_switch_mixer,
21495 msm_routing_put_switch_mixer);
21496
21497static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21498 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21499 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21500 msm_routing_put_fm_pcmrx_switch_mixer);
21501
21502static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21503 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21504 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21505 msm_routing_put_int0_mi2s_switch_mixer);
21506
21507static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21508 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21509 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21510 msm_routing_put_int4_mi2s_switch_mixer);
21511
21512static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21513 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21514 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21515 msm_routing_put_pri_mi2s_switch_mixer);
21516
21517static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21518 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21519 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21520 msm_routing_put_sec_mi2s_switch_mixer);
21521
21522static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21523 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21524 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21525 msm_routing_put_tert_mi2s_switch_mixer);
21526
21527static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21528 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21529 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21530 msm_routing_put_quat_mi2s_switch_mixer);
21531
Rohit Kumara5077932017-09-10 22:05:05 +053021532static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21533 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21534 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21535 msm_routing_put_quin_mi2s_switch_mixer);
21536
Karthikeyan Manic3700752019-03-11 18:33:53 -070021537static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21538 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21539 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21540 msm_routing_put_sen_mi2s_switch_mixer);
21541
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021542static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21543 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21544 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21545 msm_routing_put_hfp_switch_mixer);
21546
21547static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21548 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21549 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21550 msm_routing_put_hfp_switch_mixer);
21551
21552static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21553 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21554 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21555 msm_routing_put_hfp_switch_mixer);
21556
21557static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21558 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21559 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21560 msm_routing_put_hfp_switch_mixer);
21561
21562static const struct snd_kcontrol_new usb_switch_mixer_controls =
21563 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21564 0, 1, 0, msm_routing_get_usb_switch_mixer,
21565 msm_routing_put_usb_switch_mixer);
21566
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021567static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21568 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21569 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21570 msm_routing_a2dp_switch_mixer_put);
21571
Zhou Songcaa541d2019-02-19 18:37:47 +080021572static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21573 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21574 0, 1, 0, msm_routing_sco_switch_mixer_get,
21575 msm_routing_sco_switch_mixer_put);
21576
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021577static const struct soc_enum lsm_port_enum =
21578 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21579
21580static const char * const lsm_func_text[] = {
21581 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21582};
21583static const struct soc_enum lsm_func_enum =
21584 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21585
21586static const struct snd_kcontrol_new lsm_controls[] = {
21587 /* kcontrol of lsm_function */
21588 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21589 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21590 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21591 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21592 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21593 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21594 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21595 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21596 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21597 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21598 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21599 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21600 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21601 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21602 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21603 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21604 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21605 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021606 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21607 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021608 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21609 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Guodong Hu395166b2019-10-10 16:56:28 +080021610 SOC_ENUM_EXT(TERT_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21611 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021612 /* kcontrol of lsm_port */
21613 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21614 msm_routing_lsm_port_get,
21615 msm_routing_lsm_port_put),
21616 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21617 msm_routing_lsm_port_get,
21618 msm_routing_lsm_port_put),
21619 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21620 msm_routing_lsm_port_get,
21621 msm_routing_lsm_port_put),
21622 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21623 msm_routing_lsm_port_get,
21624 msm_routing_lsm_port_put),
21625 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21626 msm_routing_lsm_port_get,
21627 msm_routing_lsm_port_put),
21628 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21629 msm_routing_lsm_port_get,
21630 msm_routing_lsm_port_put),
21631 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21632 msm_routing_lsm_port_get,
21633 msm_routing_lsm_port_put),
21634 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21635 msm_routing_lsm_port_get,
21636 msm_routing_lsm_port_put),
21637};
21638
21639static const char * const aanc_slim_0_rx_text[] = {
21640 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21641 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21642};
21643
21644static const struct soc_enum aanc_slim_0_rx_enum =
21645 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21646 aanc_slim_0_rx_text);
21647
21648static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21649 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21650 msm_routing_slim_0_rx_aanc_mux_get,
21651 msm_routing_slim_0_rx_aanc_mux_put)
21652};
21653
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021654static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21655 struct snd_ctl_elem_value *ucontrol)
21656{
21657 ucontrol->value.integer.value[0] = aanc_level;
21658
21659 return 0;
21660}
21661
21662static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21663 struct snd_ctl_elem_value *ucontrol)
21664{
21665 int ret = 0;
21666
21667 mutex_lock(&routing_lock);
21668 aanc_level = ucontrol->value.integer.value[0];
21669 pr_debug("%s: value: %ld\n",
21670 __func__, ucontrol->value.integer.value[0]);
21671 ret = afe_set_aanc_noise_level(aanc_level);
21672 mutex_unlock(&routing_lock);
21673
21674 return ret;
21675}
21676
21677static const struct snd_kcontrol_new aanc_noise_level[] = {
21678 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21679 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21680};
21681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021682static int msm_routing_get_stereo_to_custom_stereo_control(
21683 struct snd_kcontrol *kcontrol,
21684 struct snd_ctl_elem_value *ucontrol)
21685{
21686 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21687 return 0;
21688}
21689
21690static int msm_routing_put_stereo_to_custom_stereo_control(
21691 struct snd_kcontrol *kcontrol,
21692 struct snd_ctl_elem_value *ucontrol)
21693{
21694 int flag = 0, i = 0, rc = 0, idx = 0;
21695 int be_index = 0, port_id, topo_id;
21696 unsigned int session_id = 0;
21697 uint16_t op_FL_ip_FL_weight = 0;
21698 uint16_t op_FL_ip_FR_weight = 0;
21699 uint16_t op_FR_ip_FL_weight = 0;
21700 uint16_t op_FR_ip_FR_weight = 0;
21701
21702 flag = ucontrol->value.integer.value[0];
21703 pr_debug("%s E flag %d\n", __func__, flag);
21704
21705 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21706 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21707 __func__, is_custom_stereo_on, flag);
21708 return 0;
21709 }
21710 is_custom_stereo_on = flag ? true : false;
21711 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21712 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21713 port_id = msm_bedais[be_index].port_id;
21714 if (!msm_bedais[be_index].active)
21715 continue;
21716 if ((port_id != SLIMBUS_0_RX) &&
21717 (port_id != RT_PROXY_PORT_001_RX) &&
21718 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21719 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21720 continue;
21721
21722 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21723 MSM_FRONTEND_DAI_MM_SIZE) {
21724 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21725 LEGACY_PCM_MODE)
21726 goto skip_send_custom_stereo;
21727 session_id =
21728 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21729 if (is_custom_stereo_on) {
21730 op_FL_ip_FL_weight =
21731 Q14_GAIN_ZERO_POINT_FIVE;
21732 op_FL_ip_FR_weight =
21733 Q14_GAIN_ZERO_POINT_FIVE;
21734 op_FR_ip_FL_weight =
21735 Q14_GAIN_ZERO_POINT_FIVE;
21736 op_FR_ip_FR_weight =
21737 Q14_GAIN_ZERO_POINT_FIVE;
21738 } else {
21739 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21740 op_FL_ip_FR_weight = 0;
21741 op_FR_ip_FL_weight = 0;
21742 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21743 }
21744 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21745 unsigned long copp =
21746 session_copp_map[i]
21747 [SESSION_TYPE_RX][be_index];
21748 if (!test_bit(idx, &copp))
21749 goto skip_send_custom_stereo;
21750 topo_id = adm_get_topology_for_port_copp_idx(
21751 msm_bedais[be_index].port_id, idx);
21752 if (topo_id < 0)
21753 pr_debug("%s:Err:custom stereo topo %d",
21754 __func__, topo_id);
21755 pr_debug("idx %d\n", idx);
21756 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21757 rc = msm_ds2_dap_set_custom_stereo_onoff
21758 (msm_bedais[be_index].port_id,
21759 idx, is_custom_stereo_on);
21760 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21761 rc = dolby_dap_set_custom_stereo_onoff(
21762 msm_bedais[be_index].port_id,
21763 idx, is_custom_stereo_on);
21764 else
21765 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21766 (msm_bedais[be_index].port_id,
21767 idx, session_id,
21768 op_FL_ip_FL_weight,
21769 op_FL_ip_FR_weight,
21770 op_FR_ip_FL_weight,
21771 op_FR_ip_FR_weight);
21772 if (rc < 0)
21773skip_send_custom_stereo:
21774 pr_err("%s: err setting custom stereo\n",
21775 __func__);
21776 }
21777
21778 }
21779 }
21780 return 0;
21781}
21782
21783static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21784 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21785 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21786 msm_routing_put_stereo_to_custom_stereo_control),
21787};
21788
21789static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21790 struct snd_ctl_elem_value *ucontrol)
21791{
21792 return 0;
21793}
21794
21795static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21796 struct snd_ctl_elem_value *ucontrol)
21797{
21798 int i = 0, j;
21799 int num_app_types = ucontrol->value.integer.value[i++];
21800
21801 pr_debug("%s\n", __func__);
21802
21803 memset(app_type_cfg, 0, MAX_APP_TYPES*
21804 sizeof(struct msm_pcm_routing_app_type_data));
21805 if (num_app_types > MAX_APP_TYPES) {
21806 pr_err("%s: number of app types exceed the max supported\n",
21807 __func__);
21808 return -EINVAL;
21809 }
21810 for (j = 0; j < num_app_types; j++) {
21811 app_type_cfg[j].app_type =
21812 ucontrol->value.integer.value[i++];
21813 app_type_cfg[j].sample_rate =
21814 ucontrol->value.integer.value[i++];
21815 app_type_cfg[j].bit_width =
21816 ucontrol->value.integer.value[i++];
21817 }
21818
21819 return 0;
21820}
21821
21822static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21823 struct snd_ctl_elem_value *ucontrol)
21824{
21825 int j, fe_id, be_id, port_type;
21826 int ret = 0;
21827 unsigned long copp;
21828 struct msm_pcm_routing_bdai_data *bedai;
21829 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21830 SESSION_TYPE_RX;
21831 int app_type = ucontrol->value.integer.value[1];
21832 int gain = (ucontrol->value.integer.value[2] +
21833 ucontrol->value.integer.value[3])/2;
21834
21835 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21836 MSM_AFE_PORT_TYPE_TX;
21837
21838 mutex_lock(&routing_lock);
21839 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21840 if (is_be_dai_extproc(be_id))
21841 continue;
21842
21843 bedai = &msm_bedais[be_id];
21844 if (afe_get_port_type(bedai->port_id) != port_type)
21845 continue;
21846
21847 if (!bedai->active)
21848 continue;
21849
21850 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21851 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21852 continue;
21853
21854 if (app_type !=
21855 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21856 continue;
21857
21858 copp = session_copp_map[fe_id][dir][be_id];
21859 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21860 if (!test_bit(j, &copp))
21861 continue;
21862 ret |= adm_set_volume(bedai->port_id, j, gain);
21863 }
21864 }
21865 }
21866 mutex_unlock(&routing_lock);
21867 return ret ? -EINVAL : 0;
21868}
21869
21870static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21871 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021872 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 msm_routing_put_app_type_cfg_control),
21874 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21875 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21876};
21877
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021878static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21879 struct snd_ctl_elem_value *ucontrol)
21880{
21881 int copp_idx, fe_id, be_id, port_type;
21882 int ret = 0;
21883 unsigned long copp;
21884 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021885 u8 *packed_params = NULL;
21886 struct param_hdr_v3 param_hdr;
21887 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21888 sizeof(uint32_t));
21889
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021890 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21891 SESSION_TYPE_RX;
21892 int app_type = ucontrol->value.integer.value[1];
21893 int module_id = ucontrol->value.integer.value[2];
21894 int instance_id = ucontrol->value.integer.value[3];
21895 int param_id = ucontrol->value.integer.value[4];
21896 int param_value = ucontrol->value.integer.value[5];
21897
21898 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21899 MSM_AFE_PORT_TYPE_TX;
21900 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21901 __func__, app_type, module_id,
21902 instance_id, param_id, param_value);
21903
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021904 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21905 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021906 return -ENOMEM;
21907
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021908 memset(&param_hdr, 0, sizeof(param_hdr));
21909 param_hdr.module_id = module_id;
21910 param_hdr.instance_id = instance_id;
21911 param_hdr.param_id = param_id;
21912 param_hdr.param_size = sizeof(uint32_t);
21913
21914 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021915
21916 mutex_lock(&routing_lock);
21917 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21918 if (is_be_dai_extproc(be_id))
21919 continue;
21920
21921 bedai = &msm_bedais[be_id];
21922 if (afe_get_port_type(bedai->port_id) != port_type)
21923 continue;
21924
21925 if (!bedai->active)
21926 continue;
21927
21928 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21929 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21930 continue;
21931
21932 if (app_type !=
21933 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21934 continue;
21935
21936 copp = session_copp_map[fe_id][dir][be_id];
21937 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21938 copp_idx++) {
21939 if (!test_bit(copp_idx, &copp))
21940 continue;
21941
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021942 ret = q6common_pack_pp_params(packed_params,
21943 &param_hdr,
21944 (u8 *) &param_value,
21945 &packed_param_size);
21946 if (ret) {
21947 pr_err("%s: Failed to pack params, error %d\n",
21948 __func__, ret);
21949 goto done;
21950 }
21951
21952 ret = adm_set_pp_params(bedai->port_id,
21953 copp_idx, NULL,
21954 packed_params,
21955 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021956 if (ret) {
21957 pr_err("%s: Setting param failed with err=%d\n",
21958 __func__, ret);
21959 ret = -EINVAL;
21960 goto done;
21961 }
21962 }
21963 }
21964 }
21965done:
21966 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021967 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021968 return ret;
21969}
21970
21971static const struct snd_kcontrol_new module_cfg_controls[] = {
21972 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21973 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21974};
21975
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021976static int msm_routing_get_lsm_app_type_cfg_control(
21977 struct snd_kcontrol *kcontrol,
21978 struct snd_ctl_elem_value *ucontrol)
21979{
Meng Wangadbca4f2018-10-29 14:30:13 +080021980 int shift = ((struct soc_multi_mixer_control *)
21981 kcontrol->private_value)->shift;
21982 int i = 0, j = 0;
21983
21984 ucontrol->value.integer.value[i] = num_app_cfg_types;
21985
21986 for (j = 0; j < num_app_cfg_types; ++j) {
21987 ucontrol->value.integer.value[++i] =
21988 lsm_app_type_cfg[j].app_type;
21989 ucontrol->value.integer.value[++i] =
21990 lsm_app_type_cfg[j].sample_rate;
21991 ucontrol->value.integer.value[++i] =
21992 lsm_app_type_cfg[j].bit_width;
21993 if (shift == 1)
21994 ucontrol->value.integer.value[++i] =
21995 lsm_app_type_cfg[j].num_out_channels;
21996 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021997 return 0;
21998}
21999
22000static int msm_routing_put_lsm_app_type_cfg_control(
22001 struct snd_kcontrol *kcontrol,
22002 struct snd_ctl_elem_value *ucontrol)
22003{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022004 int shift = ((struct soc_multi_mixer_control *)
22005 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022006 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022007
Ajit Pandey248ce562019-09-06 10:51:02 +053022008 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022009 pr_err("%s: number of app types exceed the max supported\n",
22010 __func__);
22011 return -EINVAL;
22012 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022013
Ajit Pandey248ce562019-09-06 10:51:02 +053022014 num_app_cfg_types = ucontrol->value.integer.value[i++];
22015 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
22016 sizeof(struct msm_pcm_routing_app_type_data));
22017
Meng Wangadbca4f2018-10-29 14:30:13 +080022018 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022019 lsm_app_type_cfg[j].app_type =
22020 ucontrol->value.integer.value[i++];
22021 lsm_app_type_cfg[j].sample_rate =
22022 ucontrol->value.integer.value[i++];
22023 lsm_app_type_cfg[j].bit_width =
22024 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022025 /* Shift of 1 indicates this is V2 mixer control */
22026 if (shift == 1)
22027 lsm_app_type_cfg[j].num_out_channels =
22028 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022029 }
22030
22031 return 0;
22032}
22033
22034static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
22035 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
22036 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22037 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022038 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
22039 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22040 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022041};
22042
22043static int msm_routing_get_use_ds1_or_ds2_control(
22044 struct snd_kcontrol *kcontrol,
22045 struct snd_ctl_elem_value *ucontrol)
22046{
22047 ucontrol->value.integer.value[0] = is_ds2_on;
22048 return 0;
22049}
22050
22051static int msm_routing_put_use_ds1_or_ds2_control(
22052 struct snd_kcontrol *kcontrol,
22053 struct snd_ctl_elem_value *ucontrol)
22054{
22055 is_ds2_on = ucontrol->value.integer.value[0];
22056 return 0;
22057}
22058
22059static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
22060 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
22061 1, 0, msm_routing_get_use_ds1_or_ds2_control,
22062 msm_routing_put_use_ds1_or_ds2_control),
22063};
22064
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053022065static int msm_routing_get_hifi_filter_control(
22066 struct snd_kcontrol *kcontrol,
22067 struct snd_ctl_elem_value *ucontrol)
22068{
22069 ucontrol->value.integer.value[0] = hifi_filter_enabled;
22070 return 0;
22071}
22072
22073static int msm_routing_put_hifi_filter_control(
22074 struct snd_kcontrol *kcontrol,
22075 struct snd_ctl_elem_value *ucontrol)
22076{
22077 hifi_filter_enabled = ucontrol->value.integer.value[0];
22078 return 0;
22079}
22080
22081static const struct snd_kcontrol_new hifi_filter_controls[] = {
22082 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
22083 1, 0, msm_routing_get_hifi_filter_control,
22084 msm_routing_put_hifi_filter_control),
22085};
22086
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022087int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
22088 struct snd_ctl_elem_value *ucontrol) {
22089 int rc = 0;
22090 int be_idx = 0;
22091 char *param_value;
22092 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022093 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
22094 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022095
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022096 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022097 if (!param_value)
22098 return -ENOMEM;
22099
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022100 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022101 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
22102 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
22103 break;
22104 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022105 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
22106 param_hdr.instance_id = INSTANCE_ID_0;
22107 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
22108 param_hdr.param_size = param_size;
22109 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
22110 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022111 if (rc) {
22112 pr_err("%s: get parameters failed:%d\n", __func__, rc);
22113 kfree(param_value);
22114 return -EINVAL;
22115 }
22116 update_param_value = (int *)param_value;
22117 ucontrol->value.integer.value[0] = update_param_value[0];
22118
22119 pr_debug("%s: FROM DSP value[0] 0x%x\n",
22120 __func__, update_param_value[0]);
22121 }
22122 kfree(param_value);
22123 return 0;
22124}
22125
22126static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
22127 struct snd_ctl_elem_value *ucontrol)
22128{
22129 voc_session_id = ucontrol->value.integer.value[0];
22130
22131 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
22132
22133 return 0;
22134}
22135
22136static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
22137 struct snd_ctl_elem_value *ucontrol)
22138{
22139 ucontrol->value.integer.value[0] = voc_session_id;
22140
22141 return 0;
22142}
22143
22144static struct snd_kcontrol_new msm_voc_session_controls[] = {
22145 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
22146 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
22147 msm_voc_session_id_put),
22148};
22149
22150static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
22151 struct snd_ctl_elem_info *uinfo)
22152{
22153 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22154 uinfo->count = sizeof(struct sound_focus_param);
22155
22156 return 0;
22157}
22158
22159static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
22160 struct snd_ctl_elem_value *ucontrol)
22161{
22162 int ret = 0;
22163 struct sound_focus_param soundFocusData;
22164
22165 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22166 sizeof(struct sound_focus_param));
22167 ret = voc_set_sound_focus(soundFocusData);
22168 if (ret) {
22169 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22170 __func__, ret);
22171
22172 ret = -EINVAL;
22173 }
22174
22175 return ret;
22176}
22177
22178static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
22179 struct snd_ctl_elem_value *ucontrol)
22180{
22181 int ret = 0;
22182 struct sound_focus_param soundFocusData;
22183
22184 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
22185
22186 ret = voc_get_sound_focus(&soundFocusData);
22187 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022188 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022189 __func__, ret);
22190
22191 ret = -EINVAL;
22192 goto done;
22193 }
22194 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22195 sizeof(struct sound_focus_param));
22196
22197done:
22198 return ret;
22199}
22200
22201static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
22202 struct snd_ctl_elem_info *uinfo)
22203{
22204 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22205 uinfo->count = sizeof(struct source_tracking_param);
22206
22207 return 0;
22208}
22209
22210static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
22211 struct snd_ctl_elem_value *ucontrol)
22212{
Meng Wang92edfde2018-04-24 12:18:37 +080022213 int ret = 0;
22214 struct source_tracking_param sourceTrackingData;
22215
22216 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
22217
22218 ret = voc_get_source_tracking(&sourceTrackingData);
22219 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022220 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080022221 __func__, ret);
22222
22223 ret = -EINVAL;
22224 goto done;
22225 }
22226 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22227 sizeof(struct source_tracking_param));
22228
22229done:
22230 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022231}
22232
22233static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
22234 int *copp_idx)
22235{
22236 int i, idx, be_idx;
22237 int ret = 0;
22238 unsigned long copp;
22239
22240 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
22241
22242 ret = q6audio_validate_port(port_id);
22243 if (ret < 0) {
22244 pr_err("%s: port validation failed id 0x%x ret %d\n",
22245 __func__, port_id, ret);
22246
22247 ret = -EINVAL;
22248 goto done;
22249 }
22250
22251 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22252 if (msm_bedais[be_idx].port_id == port_id)
22253 break;
22254 }
22255 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22256 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
22257
22258 ret = -EINVAL;
22259 goto done;
22260 }
22261
22262 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022263 MSM_FRONTEND_DAI_MAX) {
22264 if (!(is_mm_lsm_fe_id(i) &&
22265 route_check_fe_id_adm_support(i)))
22266 continue;
22267
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022268 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22269 copp = session_copp_map[i]
22270 [session_type][be_idx];
22271 if (test_bit(idx, &copp))
22272 break;
22273 }
22274 if (idx >= MAX_COPPS_PER_PORT)
22275 continue;
22276 else
22277 break;
22278 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022279 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022280 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022281
22282 ret = -EINVAL;
22283 goto done;
22284 }
22285 *copp_idx = idx;
22286 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22287
22288done:
22289 return ret;
22290}
22291
22292static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22293 const char *prefix, int *port_id)
22294{
22295 int ret = 0;
22296
22297 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22298
22299 /*
22300 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22301 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22302 * and compare the string with the backend name to derive the port id.
22303 */
22304 if (!strcmp(kcontrol->id.name + strlen(prefix),
22305 "SLIMBUS_0")) {
22306 *port_id = SLIMBUS_0_TX;
22307 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22308 "TERT_MI2S")) {
22309 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22310 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22311 "INT3_MI2S")) {
22312 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022313 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22314 "VA_CDC_DMA_TX_0")) {
22315 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022316 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22317 "TX_CDC_DMA_TX_3")) {
22318 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022319 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22320 "QUIN_TDM_TX_0")) {
22321 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022322 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22323 "PRIMARY_TDM")) {
22324 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022325 } else {
22326 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22327 __func__, kcontrol->id.name);
22328
22329 ret = -EINVAL;
22330 goto done;
22331 }
22332 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22333 __func__, kcontrol->id.name, *port_id);
22334
22335done:
22336 return ret;
22337}
22338
22339static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22340 struct snd_ctl_elem_value *ucontrol)
22341{
22342 int ret = 0;
22343 struct sound_focus_param soundFocusData;
22344 int port_id, copp_idx;
22345
22346 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22347 "Sound Focus Audio Tx ", &port_id);
22348 if (ret != 0) {
22349 pr_err("%s: Error in deriving port id, err=%d\n",
22350 __func__, ret);
22351
22352 ret = -EINVAL;
22353 goto done;
22354 }
22355
22356 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22357 &copp_idx);
22358 if (ret) {
22359 pr_err("%s: Could not get copp idx for port_id=%d\n",
22360 __func__, port_id);
22361
22362 ret = -EINVAL;
22363 goto done;
22364 }
22365
22366 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22367 sizeof(struct sound_focus_param));
22368
22369 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22370 if (ret) {
22371 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22372 __func__, ret);
22373
22374 ret = -EINVAL;
22375 goto done;
22376 }
22377
22378done:
22379 return ret;
22380}
22381
22382static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22383 struct snd_ctl_elem_value *ucontrol)
22384{
22385 int ret = 0;
22386 struct sound_focus_param soundFocusData;
22387 int port_id, copp_idx;
22388
22389 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22390 "Sound Focus Audio Tx ", &port_id);
22391 if (ret) {
22392 pr_err("%s: Error in deriving port id, err=%d\n",
22393 __func__, ret);
22394
22395 ret = -EINVAL;
22396 goto done;
22397 }
22398
22399 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22400 &copp_idx);
22401 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022402 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022403 __func__, port_id);
22404
22405 ret = -EINVAL;
22406 goto done;
22407 }
22408
22409 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22410 if (ret) {
22411 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22412 __func__, ret);
22413
22414 ret = -EINVAL;
22415 goto done;
22416 }
22417
22418 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22419 sizeof(struct sound_focus_param));
22420
22421done:
22422 return ret;
22423}
22424
22425static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22426 struct snd_ctl_elem_value *ucontrol)
22427{
22428 int ret = 0;
22429 struct source_tracking_param sourceTrackingData;
22430 int port_id, copp_idx;
22431
22432 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22433 "Source Tracking Audio Tx ", &port_id);
22434 if (ret) {
22435 pr_err("%s: Error in deriving port id, err=%d\n",
22436 __func__, ret);
22437
22438 ret = -EINVAL;
22439 goto done;
22440 }
22441
22442 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22443 &copp_idx);
22444 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022445 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022446 __func__, port_id);
22447
22448 ret = -EINVAL;
22449 goto done;
22450 }
22451
22452 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22453 if (ret) {
22454 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22455 __func__, ret);
22456
22457 ret = -EINVAL;
22458 goto done;
22459 }
22460
22461 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22462 sizeof(struct source_tracking_param));
22463
22464done:
22465 return ret;
22466}
22467
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022468static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22469 struct snd_ctl_elem_info *uinfo)
22470{
22471 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22472 uinfo->count = sizeof(struct doa_tracking_mon_param);
22473
22474 return 0;
22475}
22476
22477static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22478 struct snd_ctl_elem_value *ucontrol)
22479{
22480 int ret = 0;
22481 struct doa_tracking_mon_param doa_tracking_data;
22482 int port_id, copp_idx;
22483
22484 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22485 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22486 "Doa Tracking Monitor Listen ", &port_id);
22487 if (ret) {
22488 pr_err("%s: Error in deriving port id, err=%d\n",
22489 __func__, ret);
22490 ret = -EINVAL;
22491 goto done;
22492 }
22493
22494 /*
22495 * If copp id exists for given port id, query adm to get doa data.
22496 * Else query afe for doa tracking params.
22497 * This is to support in cases where LSM directly connects to
22498 * AFE for FFNS.
22499 */
22500 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22501 &copp_idx);
22502 if (!ret)
22503 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22504 &doa_tracking_data);
22505 else
22506 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22507
22508 if (ret) {
22509 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22510 __func__, ret);
22511 ret = -EINVAL;
22512 goto done;
22513 }
22514
22515 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22516 sizeof(struct doa_tracking_mon_param));
22517done:
22518 return ret;
22519}
22520
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022521static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22522 {
22523 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22524 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22525 .name = "Sound Focus Voice Tx SLIMBUS_0",
22526 .info = msm_sound_focus_info,
22527 .get = msm_voice_sound_focus_get,
22528 .put = msm_voice_sound_focus_put,
22529 },
22530 {
22531 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22532 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22533 .name = "Source Tracking Voice Tx SLIMBUS_0",
22534 .info = msm_source_tracking_info,
22535 .get = msm_voice_source_tracking_get,
22536 },
22537 {
22538 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22539 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22540 .name = "Sound Focus Audio Tx SLIMBUS_0",
22541 .info = msm_sound_focus_info,
22542 .get = msm_audio_sound_focus_get,
22543 .put = msm_audio_sound_focus_put,
22544 },
22545 {
22546 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22547 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22548 .name = "Source Tracking Audio Tx SLIMBUS_0",
22549 .info = msm_source_tracking_info,
22550 .get = msm_audio_source_tracking_get,
22551 },
22552 {
22553 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22555 .name = "Sound Focus Voice Tx TERT_MI2S",
22556 .info = msm_sound_focus_info,
22557 .get = msm_voice_sound_focus_get,
22558 .put = msm_voice_sound_focus_put,
22559 },
22560 {
22561 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22562 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22563 .name = "Source Tracking Voice Tx TERT_MI2S",
22564 .info = msm_source_tracking_info,
22565 .get = msm_voice_source_tracking_get,
22566 },
22567 {
22568 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22569 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22570 .name = "Sound Focus Audio Tx TERT_MI2S",
22571 .info = msm_sound_focus_info,
22572 .get = msm_audio_sound_focus_get,
22573 .put = msm_audio_sound_focus_put,
22574 },
22575 {
22576 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22577 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22578 .name = "Source Tracking Audio Tx TERT_MI2S",
22579 .info = msm_source_tracking_info,
22580 .get = msm_audio_source_tracking_get,
22581 },
22582 {
22583 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22584 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22585 .name = "Sound Focus Voice Tx INT3_MI2S",
22586 .info = msm_sound_focus_info,
22587 .get = msm_voice_sound_focus_get,
22588 .put = msm_voice_sound_focus_put,
22589 },
22590 {
22591 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22592 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22593 .name = "Source Tracking Voice Tx INT3_MI2S",
22594 .info = msm_source_tracking_info,
22595 .get = msm_voice_source_tracking_get,
22596 },
22597 {
22598 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22600 .name = "Sound Focus Audio Tx INT3_MI2S",
22601 .info = msm_sound_focus_info,
22602 .get = msm_audio_sound_focus_get,
22603 .put = msm_audio_sound_focus_put,
22604 },
22605 {
22606 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22607 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22608 .name = "Source Tracking Audio Tx INT3_MI2S",
22609 .info = msm_source_tracking_info,
22610 .get = msm_audio_source_tracking_get,
22611 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022612 {
22613 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22614 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22615 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22616 .info = msm_sound_focus_info,
22617 .get = msm_voice_sound_focus_get,
22618 .put = msm_voice_sound_focus_put,
22619 },
22620 {
22621 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22622 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22623 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22624 .info = msm_source_tracking_info,
22625 .get = msm_voice_source_tracking_get,
22626 },
22627 {
22628 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22629 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22630 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22631 .info = msm_sound_focus_info,
22632 .get = msm_audio_sound_focus_get,
22633 .put = msm_audio_sound_focus_put,
22634 },
22635 {
22636 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22637 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22638 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22639 .info = msm_source_tracking_info,
22640 .get = msm_audio_source_tracking_get,
22641 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022642 {
22643 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22644 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22645 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22646 .info = msm_sound_focus_info,
22647 .get = msm_voice_sound_focus_get,
22648 .put = msm_voice_sound_focus_put,
22649 },
22650 {
22651 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22652 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22653 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22654 .info = msm_source_tracking_info,
22655 .get = msm_voice_source_tracking_get,
22656 },
22657 {
22658 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22659 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22660 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22661 .info = msm_sound_focus_info,
22662 .get = msm_audio_sound_focus_get,
22663 .put = msm_audio_sound_focus_put,
22664 },
22665 {
22666 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22667 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22668 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22669 .info = msm_source_tracking_info,
22670 .get = msm_audio_source_tracking_get,
22671 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022672 {
22673 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22674 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22675 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22676 .info = msm_sound_focus_info,
22677 .get = msm_voice_sound_focus_get,
22678 .put = msm_voice_sound_focus_put,
22679 },
22680 {
22681 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22682 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22683 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22684 .info = msm_source_tracking_info,
22685 .get = msm_voice_source_tracking_get,
22686 },
22687 {
22688 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22689 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22690 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22691 .info = msm_sound_focus_info,
22692 .get = msm_audio_sound_focus_get,
22693 .put = msm_audio_sound_focus_put,
22694 },
22695 {
22696 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22697 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22698 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22699 .info = msm_source_tracking_info,
22700 .get = msm_audio_source_tracking_get,
22701 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022702 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022703 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22704 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22705 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22706 .info = msm_sound_focus_info,
22707 .get = msm_audio_sound_focus_get,
22708 .put = msm_audio_sound_focus_put,
22709 },
22710 {
22711 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22712 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22713 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22714 .info = msm_source_tracking_info,
22715 .get = msm_audio_source_tracking_get,
22716 },
22717 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022718 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22720 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22721 .info = msm_doa_tracking_mon_info,
22722 .get = msm_doa_tracking_mon_get,
22723 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022724};
22725
22726static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22727 struct snd_ctl_elem_value *ucontrol)
22728{
22729 int ret = 0;
22730 int item;
22731 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22732
22733 pr_debug("%s item is %d\n", __func__,
22734 ucontrol->value.enumerated.item[0]);
22735 mutex_lock(&routing_lock);
22736 item = ucontrol->value.enumerated.item[0];
22737 if (item < e->items) {
22738 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22739 __func__, e->shift_l, e->values[item]);
22740 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22741 e->values[item] < MSM_BACKEND_DAI_MAX)
22742 /* Enable feedback TX path */
22743 ret = afe_spk_prot_feed_back_cfg(
22744 msm_bedais[e->values[item]].port_id,
22745 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22746 else {
22747 pr_debug("%s values are out of range item %d\n",
22748 __func__, e->values[item]);
22749 /* Disable feedback TX path */
22750 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22751 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22752 else
22753 ret = -EINVAL;
22754 }
22755 } else {
22756 pr_err("%s item value is out of range item\n", __func__);
22757 ret = -EINVAL;
22758 }
22759 mutex_unlock(&routing_lock);
22760 return ret;
22761}
22762
22763static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22764 struct snd_ctl_elem_value *ucontrol)
22765{
22766 int ret = 0;
22767 int item;
22768 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22769
22770 pr_debug("%s item is %d\n", __func__,
22771 ucontrol->value.enumerated.item[0]);
22772 mutex_lock(&routing_lock);
22773 item = ucontrol->value.enumerated.item[0];
22774 if (item < e->items) {
22775 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22776 __func__, e->shift_l, e->values[item]);
22777 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22778 e->values[item] < MSM_BACKEND_DAI_MAX)
22779 /* Enable feedback TX path */
22780 ret = afe_spk_prot_feed_back_cfg(
22781 msm_bedais[e->values[item]].port_id,
22782 msm_bedais[e->shift_l].port_id,
22783 1, 1, 1);
22784 else {
22785 pr_debug("%s values are out of range item %d\n",
22786 __func__, e->values[item]);
22787 /* Disable feedback TX path */
22788 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22789 ret = afe_spk_prot_feed_back_cfg(0,
22790 0, 0, 0, 0);
22791 else
22792 ret = -EINVAL;
22793 }
22794 } else {
22795 pr_err("%s item value is out of range item\n", __func__);
22796 ret = -EINVAL;
22797 }
22798 mutex_unlock(&routing_lock);
22799 return ret;
22800}
22801
22802static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22803 struct snd_ctl_elem_value *ucontrol)
22804{
22805 pr_debug("%s\n", __func__);
22806 return 0;
22807}
22808
22809static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22810 struct snd_ctl_elem_value *ucontrol)
22811{
22812 pr_debug("%s\n", __func__);
22813 ucontrol->value.enumerated.item[0] = 0;
22814 return 0;
22815}
22816
22817static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22818 "ZERO", "SLIM4_TX"
22819};
22820
22821static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22822 "ZERO", "SLIM4_TX"
22823};
22824
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022825static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22826 "ZERO", "WSA_CDC_DMA_TX_0"
22827};
22828
22829static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22830 "ZERO", "WSA_CDC_DMA_TX_0"
22831};
22832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022833static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22834 "ZERO", "SENARY_TX"
22835};
22836
22837static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22838 "ZERO", "INT5_MI2S_TX"
22839};
22840
22841static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22842 "ZERO", "INT5_MI2S_TX"
22843};
22844
Josh Kirschea69fed2018-12-11 16:15:08 -080022845static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022846 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22847};
22848
Josh Kirschea69fed2018-12-11 16:15:08 -080022849static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022850 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22851};
22852
Josh Kirschea69fed2018-12-11 16:15:08 -080022853static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022854 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22855};
22856
Josh Kirschea69fed2018-12-11 16:15:08 -080022857static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022858 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22859};
22860
22861
Josh Kirschea69fed2018-12-11 16:15:08 -080022862static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022863 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22864};
22865
Josh Kirschea69fed2018-12-11 16:15:08 -080022866static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022867 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22868};
22869
Josh Kirschea69fed2018-12-11 16:15:08 -080022870static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022871 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22872};
22873
22874static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22875 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22876 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22877 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22878
22879static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22880 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22881 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22882 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22883
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022884static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22885 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22886 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22887 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22888
22889static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22890 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22891 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22892 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22893
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022894static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22895 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22896 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22897 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22898
22899static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22900 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22901 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22902 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22903 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22904
22905static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22906 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22907 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22908 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22909 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22910
22911static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22912 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22913 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22914 spkr_prot_put_vi_lch_port);
22915
22916static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22917 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22918 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22919 spkr_prot_put_vi_rch_port);
22920
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022921static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22922 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22923 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22924 spkr_prot_put_vi_lch_port);
22925
22926static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22927 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22928 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22929 spkr_prot_put_vi_rch_port);
22930
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022931static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22932 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22933 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22934 spkr_prot_put_vi_lch_port);
22935
22936static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22937 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22938 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22939 spkr_prot_put_vi_lch_port);
22940
22941static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22942 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22943 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22944 spkr_prot_put_vi_rch_port);
22945
22946static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22947 /* Frontend AIF */
22948 /* Widget name equals to Front-End DAI name<Need confirmation>,
22949 * Stream name must contains substring of front-end dai name
22950 */
22951 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22952 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22953 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22954 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22955 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22956 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22957 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22958 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22959 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22960 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22961 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22962 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22963 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22964 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22965 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22966 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22967 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022968 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022969 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022970 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022971 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22972 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22973 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22974 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22975 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22976 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22977 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22978 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22979 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022980 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022981 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022982 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22983 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22984 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22985 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022986 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022987 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022988 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022989 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22990 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022991 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022992 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22993 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22994 "VoiceMMode1 Playback", 0, 0, 0, 0),
22995 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22996 "VoiceMMode1 Capture", 0, 0, 0, 0),
22997 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22998 "VoiceMMode2 Playback", 0, 0, 0, 0),
22999 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
23000 "VoiceMMode2 Capture", 0, 0, 0, 0),
23001 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
23002 0, 0, 0, 0),
23003 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
23004 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023005 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
23006 0, 0, 0, 0),
23007 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
23008 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023009 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
23010 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
23012 0, 0, 0, 0),
23013 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
23014 0, 0, 0, 0),
23015 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
23016 0, 0, 0, 0),
23017 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
23018 0, 0, 0, 0),
23019 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
23020 0, 0, 0, 0),
23021 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
23022 0, 0, 0, 0),
23023 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
23024 0, 0, 0, 0),
23025 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
23026 0, 0, 0, 0),
23027 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
23028 0, 0, 0, 0),
23029 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
23030 0, 0, 0, 0),
23031 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
23032 0, 0, 0, 0),
23033 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
23034 0, 0, 0, 0),
23035 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
23036 0, 0, 0, 0),
23037 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
23038 0, 0, 0, 0),
23039 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
23040 0, 0, 0, 0),
23041 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
23042 0, 0, 0, 0),
23043 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
23044 0, 0, 0, 0),
23045 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
23046 0, 0, 0, 0),
23047 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
23048 0, 0, 0, 0),
23049 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
23050 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
23051 0, 0, 0, 0),
23052 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
23053 "INT0 MI2S_RX Hostless Playback",
23054 0, 0, 0, 0),
23055 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
23056 "INT4 MI2S_RX Hostless Playback",
23057 0, 0, 0, 0),
23058 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
23059 "Primary MI2S_RX Hostless Playback",
23060 0, 0, 0, 0),
23061 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
23062 "Secondary MI2S_RX Hostless Playback",
23063 0, 0, 0, 0),
23064 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
23065 "Tertiary MI2S_RX Hostless Playback",
23066 0, 0, 0, 0),
23067 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
23068 "Quaternary MI2S_RX Hostless Playback",
23069 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023070 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
23071 "Quinary MI2S_RX Hostless Playback",
23072 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023073 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
23074 "Senary MI2S_RX Hostless Playback",
23075 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023076
23077 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
23078 0, 0, 0, 0),
23079 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
23080 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023081 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
23082 0, 0, 0, 0),
23083 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
23084 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023085 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
23088 "INT3 MI2S_TX Hostless Capture",
23089 0, 0, 0, 0),
23090 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
23091 "Tertiary MI2S_TX Hostless Capture",
23092 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
23094 "Secondary MI2S_TX Hostless Capture",
23095 0, 0, 0, 0),
23096 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
23097 "Primary MI2S_TX Hostless Capture",
23098 0, 0, 0, 0),
23099 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
23100 0, 0, 0, 0),
23101 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
23102 0, 0, 0, 0),
23103 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
23104 "Quaternary MI2S_TX Hostless Capture",
23105 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023106 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
23107 "Quinary MI2S_TX Hostless Capture",
23108 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023109 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
23110 "Senary MI2S_TX Hostless Capture",
23111 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023112
23113 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
23114 "Primary TDM0 Hostless Playback",
23115 0, 0, 0, 0),
23116 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
23117 "Primary TDM0 Hostless Capture",
23118 0, 0, 0, 0),
23119 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
23120 "Primary TDM1 Hostless Playback",
23121 0, 0, 0, 0),
23122 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
23123 "Primary TDM1 Hostless Capture",
23124 0, 0, 0, 0),
23125 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
23126 "Primary TDM2 Hostless Playback",
23127 0, 0, 0, 0),
23128 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
23129 "Primary TDM2 Hostless Capture",
23130 0, 0, 0, 0),
23131 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
23132 "Primary TDM3 Hostless Playback",
23133 0, 0, 0, 0),
23134 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
23135 "Primary TDM3 Hostless Capture",
23136 0, 0, 0, 0),
23137 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
23138 "Primary TDM4 Hostless Playback",
23139 0, 0, 0, 0),
23140 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
23141 "Primary TDM4 Hostless Capture",
23142 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
23144 "Primary TDM5 Hostless Playback",
23145 0, 0, 0, 0),
23146 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
23147 "Primary TDM5 Hostless Capture",
23148 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
23150 "Primary TDM6 Hostless Playback",
23151 0, 0, 0, 0),
23152 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
23153 "Primary TDM6 Hostless Capture",
23154 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
23156 "Primary TDM7 Hostless Playback",
23157 0, 0, 0, 0),
23158 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
23159 "Primary TDM7 Hostless Capture",
23160 0, 0, 0, 0),
23161 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
23162 "Secondary TDM0 Hostless Playback",
23163 0, 0, 0, 0),
23164 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
23165 "Secondary TDM0 Hostless Capture",
23166 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
23168 "Secondary TDM1 Hostless Playback",
23169 0, 0, 0, 0),
23170 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
23171 "Secondary TDM1 Hostless Capture",
23172 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
23174 "Secondary TDM2 Hostless Playback",
23175 0, 0, 0, 0),
23176 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
23177 "Secondary TDM2 Hostless Capture",
23178 0, 0, 0, 0),
23179 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
23180 "Secondary TDM3 Hostless Playback",
23181 0, 0, 0, 0),
23182 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
23183 "Secondary TDM3 Hostless Capture",
23184 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
23186 "Secondary TDM4 Hostless Playback",
23187 0, 0, 0, 0),
23188 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
23189 "Secondary TDM4 Hostless Capture",
23190 0, 0, 0, 0),
23191 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
23192 "Secondary TDM5 Hostless Playback",
23193 0, 0, 0, 0),
23194 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
23195 "Secondary TDM5 Hostless Capture",
23196 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
23198 "Secondary TDM6 Hostless Playback",
23199 0, 0, 0, 0),
23200 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
23201 "Secondary TDM6 Hostless Capture",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
23204 "Secondary TDM7 Hostless Playback",
23205 0, 0, 0, 0),
23206 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
23207 "Secondary TDM7 Hostless Capture",
23208 0, 0, 0, 0),
23209 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
23210 "Tertiary TDM0 Hostless Playback",
23211 0, 0, 0, 0),
23212 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
23213 "Tertiary TDM0 Hostless Capture",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
23216 "Tertiary TDM1 Hostless Playback",
23217 0, 0, 0, 0),
23218 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
23219 "Tertiary TDM1 Hostless Capture",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
23222 "Tertiary TDM2 Hostless Playback",
23223 0, 0, 0, 0),
23224 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
23225 "Tertiary TDM2 Hostless Capture",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
23228 "Tertiary TDM3 Hostless Playback",
23229 0, 0, 0, 0),
23230 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
23231 "Tertiary TDM3 Hostless Capture",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
23234 "Tertiary TDM4 Hostless Playback",
23235 0, 0, 0, 0),
23236 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
23237 "Tertiary TDM4 Hostless Capture",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
23240 "Tertiary TDM5 Hostless Playback",
23241 0, 0, 0, 0),
23242 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
23243 "Tertiary TDM5 Hostless Capture",
23244 0, 0, 0, 0),
23245 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
23246 "Tertiary TDM6 Hostless Playback",
23247 0, 0, 0, 0),
23248 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
23249 "Tertiary TDM6 Hostless Capture",
23250 0, 0, 0, 0),
23251 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
23252 "Tertiary TDM7 Hostless Playback",
23253 0, 0, 0, 0),
23254 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
23255 "Tertiary TDM7 Hostless Capture",
23256 0, 0, 0, 0),
23257 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
23258 "Quaternary TDM0 Hostless Playback",
23259 0, 0, 0, 0),
23260 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
23261 "Quaternary TDM0 Hostless Capture",
23262 0, 0, 0, 0),
23263 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
23264 "Quaternary TDM1 Hostless Playback",
23265 0, 0, 0, 0),
23266 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
23267 "Quaternary TDM1 Hostless Capture",
23268 0, 0, 0, 0),
23269 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
23270 "Quaternary TDM2 Hostless Playback",
23271 0, 0, 0, 0),
23272 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
23273 "Quaternary TDM2 Hostless Capture",
23274 0, 0, 0, 0),
23275 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
23276 "Quaternary TDM3 Hostless Playback",
23277 0, 0, 0, 0),
23278 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
23279 "Quaternary TDM3 Hostless Capture",
23280 0, 0, 0, 0),
23281 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
23282 "Quaternary TDM4 Hostless Playback",
23283 0, 0, 0, 0),
23284 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
23285 "Quaternary TDM4 Hostless Capture",
23286 0, 0, 0, 0),
23287 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23288 "Quaternary TDM5 Hostless Playback",
23289 0, 0, 0, 0),
23290 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23291 "Quaternary TDM5 Hostless Capture",
23292 0, 0, 0, 0),
23293 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23294 "Quaternary TDM6 Hostless Playback",
23295 0, 0, 0, 0),
23296 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23297 "Quaternary TDM6 Hostless Capture",
23298 0, 0, 0, 0),
23299 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23300 "Quaternary TDM7 Hostless Playback",
23301 0, 0, 0, 0),
23302 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23303 "Quaternary TDM7 Hostless Capture",
23304 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023305 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23306 "Quinary TDM0 Hostless Playback",
23307 0, 0, 0, 0),
23308 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23309 "Quinary TDM0 Hostless Capture",
23310 0, 0, 0, 0),
23311 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23312 "Quinary TDM1 Hostless Playback",
23313 0, 0, 0, 0),
23314 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23315 "Quinary TDM1 Hostless Capture",
23316 0, 0, 0, 0),
23317 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23318 "Quinary TDM2 Hostless Playback",
23319 0, 0, 0, 0),
23320 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23321 "Quinary TDM2 Hostless Capture",
23322 0, 0, 0, 0),
23323 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23324 "Quinary TDM3 Hostless Playback",
23325 0, 0, 0, 0),
23326 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23327 "Quinary TDM3 Hostless Capture",
23328 0, 0, 0, 0),
23329 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23330 "Quinary TDM4 Hostless Playback",
23331 0, 0, 0, 0),
23332 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23333 "Quinary TDM4 Hostless Capture",
23334 0, 0, 0, 0),
23335 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23336 "Quinary TDM5 Hostless Playback",
23337 0, 0, 0, 0),
23338 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23339 "Quinary TDM5 Hostless Capture",
23340 0, 0, 0, 0),
23341 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23342 "Quinary TDM6 Hostless Playback",
23343 0, 0, 0, 0),
23344 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23345 "Quinary TDM6 Hostless Capture",
23346 0, 0, 0, 0),
23347 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23348 "Quinary TDM7 Hostless Playback",
23349 0, 0, 0, 0),
23350 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23351 "Quinary TDM7 Hostless Capture",
23352 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023353 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23354 "Senary TDM0 Hostless Playback",
23355 0, 0, 0, 0),
23356 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23357 "Senary TDM0 Hostless Capture",
23358 0, 0, 0, 0),
23359 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23360 "Senary TDM1 Hostless Playback",
23361 0, 0, 0, 0),
23362 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23363 "Senary TDM1 Hostless Capture",
23364 0, 0, 0, 0),
23365 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23366 "Senary TDM2 Hostless Playback",
23367 0, 0, 0, 0),
23368 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23369 "Senary TDM2 Hostless Capture",
23370 0, 0, 0, 0),
23371 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23372 "Senary TDM3 Hostless Playback",
23373 0, 0, 0, 0),
23374 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23375 "Senary TDM3 Hostless Capture",
23376 0, 0, 0, 0),
23377 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23378 "Senary TDM4 Hostless Playback",
23379 0, 0, 0, 0),
23380 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23381 "Senary TDM4 Hostless Capture",
23382 0, 0, 0, 0),
23383 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23384 "Senary TDM5 Hostless Playback",
23385 0, 0, 0, 0),
23386 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23387 "Senary TDM5 Hostless Capture",
23388 0, 0, 0, 0),
23389 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23390 "Senary TDM6 Hostless Playback",
23391 0, 0, 0, 0),
23392 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23393 "Senary TDM6 Hostless Capture",
23394 0, 0, 0, 0),
23395 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23396 "Senary TDM7 Hostless Playback",
23397 0, 0, 0, 0),
23398 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23399 "Senary TDM7 Hostless Capture",
23400 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023401
23402 /* LSM */
23403 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23404 0, 0, 0, 0),
23405 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23406 0, 0, 0, 0),
23407 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23408 0, 0, 0, 0),
23409 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23410 0, 0, 0, 0),
23411 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23412 0, 0, 0, 0),
23413 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23414 0, 0, 0, 0),
23415 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23416 0, 0, 0, 0),
23417 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23418 0, 0, 0, 0),
23419 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23420 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23421 /* Backend AIF */
23422 /* Stream name equals to backend dai link stream name */
23423 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23424 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23425 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023426 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23427 0, 0, 0, 0),
23428 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23429 0, 0, 0, 0),
23430 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23431 0, 0, 0, 0),
23432 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23433 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023434 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23435 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23436 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23437 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23438 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23439 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023440 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23441 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023442 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23443 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23444 0, 0, 0, 0),
23445 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23446 0, 0, 0, 0),
23447 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23448 0, 0, 0, 0),
23449 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23450 "Secondary MI2S Playback SD1",
23451 0, 0, 0, 0),
23452 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23453 0, 0, 0, 0),
23454 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23455 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023456 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23457 0, 0, 0, 0),
23458 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23459 0, 0, 0, 0),
23460 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23461 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023462 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23463 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023464 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23465 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023466 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23467 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023468 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23469 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023470 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23471 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23472 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23473 0, 0, 0, 0),
23474 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23475 0, 0, 0, 0),
23476 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23477 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023478 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23479 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023480 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23481 0, 0, 0, 0),
23482 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23483 0, 0, 0, 0),
23484 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23485 0, 0, 0, 0),
23486 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23487 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23488 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23489 0, 0, 0, 0),
23490 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23491 0, 0, 0, 0),
23492 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23493 0, 0, 0, 0),
23494 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23495 0, 0, 0, 0),
23496 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23497 0, 0, 0, 0),
23498 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23499 0, 0, 0, 0),
23500 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23501 0, 0, 0, 0),
23502 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23503 0, 0, 0, 0),
23504 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23505 0, 0, 0, 0),
23506 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23507 0, 0, 0, 0),
23508 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23509 0, 0, 0, 0),
23510 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23511 0, 0, 0, 0),
23512 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23513 0, 0, 0, 0),
23514 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23515 0, 0, 0, 0),
23516 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23517 0, 0, 0, 0),
23518 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23519 0, 0, 0, 0),
23520 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23521 0, 0, 0, 0),
23522 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23523 0, 0, 0, 0),
23524 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23525 0, 0, 0, 0),
23526 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23527 0, 0, 0, 0),
23528 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23529 0, 0, 0, 0),
23530 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23531 0, 0, 0, 0),
23532 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23533 0, 0, 0, 0),
23534 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23535 0, 0, 0, 0),
23536 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23537 0, 0, 0, 0),
23538 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23539 0, 0, 0, 0),
23540 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23541 0, 0, 0, 0),
23542 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23543 0, 0, 0, 0),
23544 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23545 0, 0, 0, 0),
23546 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23547 0, 0, 0, 0),
23548 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23549 0, 0, 0, 0),
23550 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23551 0, 0, 0, 0),
23552 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23553 0, 0, 0, 0),
23554 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23555 0, 0, 0, 0),
23556 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23557 0, 0, 0, 0),
23558 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23559 0, 0, 0, 0),
23560 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23561 0, 0, 0, 0),
23562 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23563 0, 0, 0, 0),
23564 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23565 0, 0, 0, 0),
23566 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23567 0, 0, 0, 0),
23568 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23569 0, 0, 0, 0),
23570 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23571 0, 0, 0, 0),
23572 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23573 0, 0, 0, 0),
23574 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23575 0, 0, 0, 0),
23576 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23577 0, 0, 0, 0),
23578 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23579 0, 0, 0, 0),
23580 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23581 0, 0, 0, 0),
23582 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23583 0, 0, 0, 0),
23584 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23585 0, 0, 0, 0),
23586 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23587 0, 0, 0, 0),
23588 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23589 0, 0, 0, 0),
23590 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23591 0, 0, 0, 0),
23592 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23593 0, 0, 0, 0),
23594 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23595 0, 0, 0, 0),
23596 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23597 0, 0, 0, 0),
23598 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23599 0, 0, 0, 0),
23600 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23601 0, 0, 0, 0),
23602 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23603 0, 0, 0, 0),
23604 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23605 0, 0, 0, 0),
23606 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23607 0, 0, 0, 0),
23608 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23609 0, 0, 0, 0),
23610 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23611 0, 0, 0, 0),
23612 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23613 0, 0, 0, 0),
23614 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23615 0, 0, 0, 0),
23616 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23617 0, 0, 0, 0),
23618 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23619 0, 0, 0, 0),
23620 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23621 0, 0, 0, 0),
23622 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23623 0, 0, 0, 0),
23624 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23625 0, 0, 0, 0),
23626 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23627 0, 0, 0, 0),
23628 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23629 0, 0, 0, 0),
23630 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23631 0, 0, 0, 0),
23632 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23633 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023634 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23635 0, 0, 0, 0),
23636 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23637 0, 0, 0, 0),
23638 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23639 0, 0, 0, 0),
23640 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23641 0, 0, 0, 0),
23642 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23643 0, 0, 0, 0),
23644 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23645 0, 0, 0, 0),
23646 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23647 0, 0, 0, 0),
23648 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23649 0, 0, 0, 0),
23650 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23651 0, 0, 0, 0),
23652 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23653 0, 0, 0, 0),
23654 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23655 0, 0, 0, 0),
23656 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23657 0, 0, 0, 0),
23658 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23659 0, 0, 0, 0),
23660 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23661 0, 0, 0, 0),
23662 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23663 0, 0, 0, 0),
23664 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23665 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023666 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23667 0, 0, 0, 0),
23668 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23669 0, 0, 0, 0),
23670 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23671 0, 0, 0, 0),
23672 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23673 0, 0, 0, 0),
23674 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23675 0, 0, 0, 0),
23676 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23677 0, 0, 0, 0),
23678 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23679 0, 0, 0, 0),
23680 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23681 0, 0, 0, 0),
23682 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23683 0, 0, 0, 0),
23684 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23685 0, 0, 0, 0),
23686 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23687 0, 0, 0, 0),
23688 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23689 0, 0, 0, 0),
23690 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23691 0, 0, 0, 0),
23692 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23693 0, 0, 0, 0),
23694 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23695 0, 0, 0, 0),
23696 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23697 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023698 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23699 0, 0, 0, 0),
23700 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23701 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023702 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23703 0, 0, 0, 0),
23704 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23705 0, 0, 0, 0),
23706 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23707 0, 0, 0, 0),
23708 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23709 0, 0, 0, 0),
23710 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23711 0, 0, 0, 0),
23712 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23713 0, 0, 0, 0),
23714 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23715 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023716 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23717 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023718 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23719 0, 0, 0, 0),
23720 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23721 0, 0, 0, 0),
23722 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23723 0, 0, 0, 0),
23724 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23725 0, 0, 0, 0),
23726 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23727 0, 0, 0, 0),
23728 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23729 0, 0, 0, 0),
23730 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23731 0, 0, 0, 0),
23732 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23733 0, 0, 0, 0),
23734 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23735 0, 0, 0, 0),
23736 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23737 0, 0, 0, 0),
23738 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23739 0, 0, 0, 0),
23740 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23741 0, 0, 0, 0),
23742 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23743 0, 0, 0, 0),
23744 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23745 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023746 /* incall */
23747 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23748 0, 0, 0, 0),
23749 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23750 0, 0, 0, 0),
23751 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23752 0, 0, 0, 0),
23753 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23754 0, 0, 0, 0),
23755 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23756 0, 0, 0, 0),
23757 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23758 0, 0, 0, 0),
23759 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23760 0, 0, 0, 0),
23761 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23762 0, 0, 0, 0),
23763 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23764
23765 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23766 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23767 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23768 0, 0, 0, 0),
23769 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23770 0, 0, 0, 0),
23771 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23772 0, 0, 0, 0),
23773 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23774 0, 0, 0, 0),
23775 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23776 0, 0, 0, 0),
23777 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23778 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023779 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23780 0, 0, 0, 0),
23781 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23782 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023783 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23784 0, 0, 0, 0),
23785 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23786 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023787 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23788 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23789 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23790 0, 0, 0, 0),
23791 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23792 0, 0, 0, 0),
23793 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23794 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23795 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23796 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23797 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23798 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23799 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23800 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23801 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23802 /* In- call recording */
23803 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23804 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023805 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23806 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023807 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23808 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23809
23810 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23811 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023812 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23813 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023814 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23815 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23816
23817 /* Switch Definitions */
23818 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23819 &slim_fm_switch_mixer_controls),
23820 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23821 &slim1_fm_switch_mixer_controls),
23822 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23823 &slim3_fm_switch_mixer_controls),
23824 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23825 &slim4_fm_switch_mixer_controls),
23826 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23827 &slim6_fm_switch_mixer_controls),
23828 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23829 &pcm_rx_switch_mixer_controls),
23830 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23831 &int0_mi2s_rx_switch_mixer_controls),
23832 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23833 &int4_mi2s_rx_switch_mixer_controls),
23834 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23835 &pri_mi2s_rx_switch_mixer_controls),
23836 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23837 &sec_mi2s_rx_switch_mixer_controls),
23838 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23839 &tert_mi2s_rx_switch_mixer_controls),
23840 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23841 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023842 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23843 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023844 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23845 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023846 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23847 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023848 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23849 &hfp_pri_aux_switch_mixer_controls),
23850 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23851 &hfp_aux_switch_mixer_controls),
23852 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23853 &hfp_int_switch_mixer_controls),
23854 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23855 &hfp_slim7_switch_mixer_controls),
23856 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23857 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023858 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23859 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023860 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023861 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023862 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023863 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023864
23865 /* Mixer definitions */
23866 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23867 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23868 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23869 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23870 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23871 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23872 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23873 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23874 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23875 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23876 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23877 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023878 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23879 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023880 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23881 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23882 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23883 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023884 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23885 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023886 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23887 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23888 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23889 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023890 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23891 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23892 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23893 quaternary_mi2s_rx_mixer_controls,
23894 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23895 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23896 tertiary_mi2s_rx_mixer_controls,
23897 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23898 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23899 secondary_mi2s_rx_mixer_controls,
23900 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23901 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23902 secondary_mi2s_rx2_mixer_controls,
23903 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23904 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23905 primary_mi2s_rx_mixer_controls,
23906 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23907 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23908 int0_mi2s_rx_mixer_controls,
23909 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23910 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23911 int4_mi2s_rx_mixer_controls,
23912 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23913 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23914 quinary_mi2s_rx_mixer_controls,
23915 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023916 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23917 senary_mi2s_rx_mixer_controls,
23918 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023919 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23920 pri_tdm_rx_0_mixer_controls,
23921 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23922 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23923 pri_tdm_rx_1_mixer_controls,
23924 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23925 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23926 pri_tdm_rx_2_mixer_controls,
23927 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23928 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23929 pri_tdm_rx_3_mixer_controls,
23930 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23931 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23932 pri_tdm_tx_0_mixer_controls,
23933 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23934 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23935 sec_tdm_rx_0_mixer_controls,
23936 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23937 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23938 sec_tdm_rx_1_mixer_controls,
23939 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23940 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23941 sec_tdm_rx_2_mixer_controls,
23942 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23943 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23944 sec_tdm_rx_3_mixer_controls,
23945 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23946 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23947 sec_tdm_tx_0_mixer_controls,
23948 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23949 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23950 tert_tdm_rx_0_mixer_controls,
23951 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23952 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23953 tert_tdm_tx_0_mixer_controls,
23954 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23955 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23956 tert_tdm_rx_1_mixer_controls,
23957 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23958 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23959 tert_tdm_rx_2_mixer_controls,
23960 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23961 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23962 tert_tdm_rx_3_mixer_controls,
23963 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23964 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23965 tert_tdm_rx_4_mixer_controls,
23966 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23967 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23968 quat_tdm_rx_0_mixer_controls,
23969 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23970 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23971 quat_tdm_tx_0_mixer_controls,
23972 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23973 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23974 quat_tdm_rx_1_mixer_controls,
23975 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23976 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23977 quat_tdm_rx_2_mixer_controls,
23978 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23979 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23980 quat_tdm_rx_3_mixer_controls,
23981 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023982 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23983 quin_tdm_rx_0_mixer_controls,
23984 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23985 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23986 quin_tdm_tx_0_mixer_controls,
23987 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23988 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23989 quin_tdm_rx_1_mixer_controls,
23990 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053023991 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23992 quin_tdm_tx_1_mixer_controls,
23993 ARRAY_SIZE(quin_tdm_tx_1_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023994 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23995 quin_tdm_rx_2_mixer_controls,
23996 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053023997 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23998 quin_tdm_tx_2_mixer_controls,
23999 ARRAY_SIZE(quin_tdm_tx_2_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024000 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24001 quin_tdm_rx_3_mixer_controls,
24002 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024003 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24004 quin_tdm_tx_3_mixer_controls,
24005 ARRAY_SIZE(quin_tdm_tx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024006 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24007 sen_tdm_tx_0_mixer_controls,
24008 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
24009 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24010 sen_tdm_rx_0_mixer_controls,
24011 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
24012 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24013 sen_tdm_rx_1_mixer_controls,
24014 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
24015 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24016 sen_tdm_rx_2_mixer_controls,
24017 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
24018 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24019 sen_tdm_rx_3_mixer_controls,
24020 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020024021 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24022 pri_meta_mi2s_rx_mixer_controls,
24023 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
24024 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24025 sec_meta_mi2s_rx_mixer_controls,
24026 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024027 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24028 wsa_cdc_dma_rx_0_mixer_controls,
24029 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
24030 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24031 wsa_cdc_dma_rx_1_mixer_controls,
24032 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024033 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24034 rx_cdc_dma_rx_0_mixer_controls,
24035 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
24036 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24037 rx_cdc_dma_rx_1_mixer_controls,
24038 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
24039 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24040 rx_cdc_dma_rx_2_mixer_controls,
24041 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
24042 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24043 rx_cdc_dma_rx_3_mixer_controls,
24044 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
24045 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24046 rx_cdc_dma_rx_4_mixer_controls,
24047 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
24048 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
24049 rx_cdc_dma_rx_5_mixer_controls,
24050 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
24051 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
24052 rx_cdc_dma_rx_6_mixer_controls,
24053 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
24054 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
24055 rx_cdc_dma_rx_7_mixer_controls,
24056 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024057 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
24058 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
24059 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
24060 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
24061 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
24062 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
24063 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
24064 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
24065 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
24066 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
24067 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
24068 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
24069 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
24070 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
24071 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
24072 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024073 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
24074 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024075 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
24076 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024077 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
24078 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
24079 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
24080 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
24081 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
24082 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
24083 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
24084 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070024085 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
24086 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070024087 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
24088 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053024089 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
24090 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024091 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
24092 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
24093 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
24094 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024095 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
24096 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024097 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24098 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
24099 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24100 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
24101 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24102 tert_auxpcm_rx_mixer_controls,
24103 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
24104 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24105 quat_auxpcm_rx_mixer_controls,
24106 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024107 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24108 quin_auxpcm_rx_mixer_controls,
24109 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024110 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24111 sen_auxpcm_rx_mixer_controls,
24112 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024113 /* incall */
24114 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
24115 incall_music_delivery_mixer_controls,
24116 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
24117 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24118 incall_music2_delivery_mixer_controls,
24119 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
24120 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24121 slimbus_4_rx_mixer_controls,
24122 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
24123 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24124 slimbus_6_rx_mixer_controls,
24125 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
24126 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24127 usb_audio_rx_mixer_controls,
24128 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
24129 /* Voice Mixer */
24130 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
24131 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
24132 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
24133 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
24134 SND_SOC_NOPM, 0, 0,
24135 sec_i2s_rx_voice_mixer_controls,
24136 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
24137 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
24138 SND_SOC_NOPM, 0, 0,
24139 sec_mi2s_rx_voice_mixer_controls,
24140 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
24141 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
24142 SND_SOC_NOPM, 0, 0,
24143 slimbus_rx_voice_mixer_controls,
24144 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
24145 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
24146 SND_SOC_NOPM, 0, 0,
24147 bt_sco_rx_voice_mixer_controls,
24148 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
24149 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
24150 SND_SOC_NOPM, 0, 0,
24151 afe_pcm_rx_voice_mixer_controls,
24152 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
24153 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
24154 SND_SOC_NOPM, 0, 0,
24155 aux_pcm_rx_voice_mixer_controls,
24156 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
24157 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
24158 SND_SOC_NOPM, 0, 0,
24159 sec_aux_pcm_rx_voice_mixer_controls,
24160 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
24161 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
24162 SND_SOC_NOPM, 0, 0,
24163 tert_aux_pcm_rx_voice_mixer_controls,
24164 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
24165 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
24166 SND_SOC_NOPM, 0, 0,
24167 quat_aux_pcm_rx_voice_mixer_controls,
24168 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024169 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
24170 SND_SOC_NOPM, 0, 0,
24171 quin_aux_pcm_rx_voice_mixer_controls,
24172 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024173 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
24174 SND_SOC_NOPM, 0, 0,
24175 sen_aux_pcm_rx_voice_mixer_controls,
24176 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024177 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
24178 SND_SOC_NOPM, 0, 0,
24179 hdmi_rx_voice_mixer_controls,
24180 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
24181 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
24182 SND_SOC_NOPM, 0, 0,
24183 mi2s_rx_voice_mixer_controls,
24184 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
24185 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
24186 SND_SOC_NOPM, 0, 0,
24187 pri_mi2s_rx_voice_mixer_controls,
24188 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
24189 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
24190 SND_SOC_NOPM, 0, 0,
24191 int0_mi2s_rx_voice_mixer_controls,
24192 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
24193 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
24194 SND_SOC_NOPM, 0, 0,
24195 int4_mi2s_rx_voice_mixer_controls,
24196 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
24197 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
24198 SND_SOC_NOPM, 0, 0,
24199 tert_mi2s_rx_voice_mixer_controls,
24200 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
24201 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
24202 SND_SOC_NOPM, 0, 0,
24203 quat_mi2s_rx_voice_mixer_controls,
24204 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
24205 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
24206 SND_SOC_NOPM, 0, 0,
24207 quin_mi2s_rx_voice_mixer_controls,
24208 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024209 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
24210 SND_SOC_NOPM, 0, 0,
24211 pri_tdm_rx_0_voice_mixer_controls,
24212 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
24213 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
24214 SND_SOC_NOPM, 0, 0,
24215 pri_tdm_rx_1_voice_mixer_controls,
24216 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
24217 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
24218 SND_SOC_NOPM, 0, 0,
24219 pri_tdm_rx_2_voice_mixer_controls,
24220 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
24221 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
24222 SND_SOC_NOPM, 0, 0,
24223 pri_tdm_rx_3_voice_mixer_controls,
24224 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024225 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
24226 SND_SOC_NOPM, 0, 0,
24227 sen_mi2s_rx_voice_mixer_controls,
24228 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024229 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
24230 SND_SOC_NOPM, 0, 0,
24231 quat_tdm_rx_2_voice_mixer_controls,
24232 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024233 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2_Voice Mixer",
24234 SND_SOC_NOPM, 0, 0,
24235 quin_tdm_rx_2_voice_mixer_controls,
24236 ARRAY_SIZE(quin_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024237 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
24238 SND_SOC_NOPM, 0, 0,
24239 wsa_cdc_dma_rx_0_voice_mixer_controls,
24240 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
24241 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
24242 SND_SOC_NOPM, 0, 0,
24243 rx_cdc_dma_rx_0_voice_mixer_controls,
24244 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024245 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1_Voice Mixer",
24246 SND_SOC_NOPM, 0, 0,
24247 rx_cdc_dma_rx_1_voice_mixer_controls,
24248 ARRAY_SIZE(rx_cdc_dma_rx_1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024249 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
24250 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
24251 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024252 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
24253 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
24254 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
24255 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
24256 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
24257 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
24258 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24259 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
24260 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24261 int_bt_a2dp_rx_mixer_controls,
24262 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
24263 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24264 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
24265 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24266 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
24267 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24268 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
24269 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24270 tx_voice2_stub_mixer_controls,
24271 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
24272 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24273 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
24274 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
24275 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
24276 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
24277 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
24278 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24279 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
24280 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
24281 SND_SOC_NOPM, 0, 0,
24282 slimbus_6_rx_voice_mixer_controls,
24283 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
24284 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24285 slimbus_7_rx_voice_mixer_controls,
24286 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
24287 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24288 slimbus_8_rx_voice_mixer_controls,
24289 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
24290 /* port mixer */
24291 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
24292 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
24293 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
24294 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
24295 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
24296 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
24297 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
24298 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
24299 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
24300 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
24301 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
24302 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
24303 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24304 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24305 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024306 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24307 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24308 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024309 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24310 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24311 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024312 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24313 sbus_1_rx_port_mixer_controls,
24314 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24315 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24316 bt_sco_rx_port_mixer_controls,
24317 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24318 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24319 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24320 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24321 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24322 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24323 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24324 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24325 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24326 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024327 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024328 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24329 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024330 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24331 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24332 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24333 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24334 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24335 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24336 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24337 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24338 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24339 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24340 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24341 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24342 primary_mi2s_rx_port_mixer_controls,
24343 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24344 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24345 sec_mi2s_rx_port_mixer_controls,
24346 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24347 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24348 tert_mi2s_rx_port_mixer_controls,
24349 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24350 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24351 quat_mi2s_rx_port_mixer_controls,
24352 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024353 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24354 quin_mi2s_rx_port_mixer_controls,
24355 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024356 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24357 sen_mi2s_rx_port_mixer_controls,
24358 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024359 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24360 pri_tdm_rx_0_port_mixer_controls,
24361 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24362 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24363 pri_tdm_rx_1_port_mixer_controls,
24364 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24365 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24366 pri_tdm_rx_2_port_mixer_controls,
24367 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24368 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24369 pri_tdm_rx_3_port_mixer_controls,
24370 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24371 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24372 sec_tdm_rx_0_port_mixer_controls,
24373 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24374 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24375 sec_tdm_rx_1_port_mixer_controls,
24376 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24377 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24378 sec_tdm_rx_2_port_mixer_controls,
24379 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24380 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24381 sec_tdm_rx_3_port_mixer_controls,
24382 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024383 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24384 sec_tdm_rx_7_port_mixer_controls,
24385 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024386 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24387 tert_tdm_rx_0_port_mixer_controls,
24388 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24389 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24390 tert_tdm_rx_1_port_mixer_controls,
24391 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24392 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24393 tert_tdm_rx_2_port_mixer_controls,
24394 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24395 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24396 tert_tdm_rx_3_port_mixer_controls,
24397 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24398 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24399 quat_tdm_rx_0_port_mixer_controls,
24400 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24401 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24402 quat_tdm_rx_1_port_mixer_controls,
24403 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24404 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24405 quat_tdm_rx_2_port_mixer_controls,
24406 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24407 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24408 quat_tdm_rx_3_port_mixer_controls,
24409 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024410 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24411 quat_tdm_rx_7_port_mixer_controls,
24412 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024413 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24414 quin_tdm_rx_0_port_mixer_controls,
24415 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24416 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24417 quin_tdm_rx_1_port_mixer_controls,
24418 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24419 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24420 quin_tdm_rx_2_port_mixer_controls,
24421 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24422 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24423 quin_tdm_rx_3_port_mixer_controls,
24424 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024425 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24426 quin_tdm_rx_7_port_mixer_controls,
24427 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024428 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24429 sen_tdm_rx_0_port_mixer_controls,
24430 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24431 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24432 sen_tdm_rx_1_port_mixer_controls,
24433 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24434 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24435 sen_tdm_rx_2_port_mixer_controls,
24436 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24437 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24438 sen_tdm_rx_3_port_mixer_controls,
24439 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024440 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24441 int0_mi2s_rx_port_mixer_controls,
24442 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24443 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24444 int4_mi2s_rx_port_mixer_controls,
24445 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024446 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24447 wsa_cdc_dma_rx_0_port_mixer_controls,
24448 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24449 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24450 rx_cdc_dma_rx_0_port_mixer_controls,
24451 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024452 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24453 rx_cdc_dma_rx_1_port_mixer_controls,
24454 ARRAY_SIZE(rx_cdc_dma_rx_1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024455 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24456 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24457 ARRAY_SIZE(tx_qchat_mixer_controls)),
24458 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24459 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24460 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24461 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24462 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24463 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024464 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24465 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24466 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024467 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24468 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24469 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024470 /* lsm mixer definitions */
24471 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24472 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24473 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24474 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24475 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24476 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24477 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24478 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24479 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24480 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24481 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24482 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24483 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24484 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24485 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24486 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24487 /* Virtual Pins to force backends ON atm */
24488 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24489 SND_SOC_DAPM_INPUT("BE_IN"),
24490
24491 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24492 &slim0_rx_vi_fb_lch_mux),
24493 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24494 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024495 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24496 &wsa_rx_0_vi_fb_lch_mux),
24497 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24498 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024499 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24500 &mi2s_rx_vi_fb_mux),
24501 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24502 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24503 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24504 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24505
24506 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24507 &voc_ext_ec_mux),
24508 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24509 &ext_ec_ref_mux_ul1),
24510 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24511 &ext_ec_ref_mux_ul2),
24512 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24513 &ext_ec_ref_mux_ul3),
24514 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24515 &ext_ec_ref_mux_ul4),
24516 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24517 &ext_ec_ref_mux_ul5),
24518 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24519 &ext_ec_ref_mux_ul6),
24520 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24521 &ext_ec_ref_mux_ul8),
24522 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24523 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024524 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24525 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024526 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24527 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024528 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24529 &ext_ec_ref_mux_ul17),
24530 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24531 &ext_ec_ref_mux_ul18),
24532 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24533 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024534 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24535 &ext_ec_ref_mux_ul28),
24536 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24537 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024538};
24539
24540static const struct snd_soc_dapm_route intercon[] = {
24541 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24542 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24543 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24544 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24545 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24546 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24547 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24548 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24549 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24550 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24551 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24552 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24553 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24554 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24555 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24556 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024557 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024558 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24559
24560 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24561 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24562 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24563 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24564 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24565 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24566 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24567 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24568 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24569 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24570 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24571 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24572 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24573 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24574 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24575 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024576 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024577 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24578
24579 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24580 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24581 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24582 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24583 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24584 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24585 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24586 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24587 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24588 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24589 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24590 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24591 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24592 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24593 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24594 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024595 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024596 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24597
24598 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24599 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24600 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24601 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24602 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24603 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24604 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24605 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24606 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24607 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24608 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24609 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24610 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24611 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24612 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24613 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024614 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024615 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24616
24617 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24618 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24619 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24620 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24621 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24622 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24623 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24624 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24625 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24626 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24627 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24628 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24629 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24630 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24631 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24632 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024633 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024634 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24635
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024636 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24637 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24638 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24639 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24640 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24641 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24642 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24643 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24644 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24645 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24646 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24647 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24648 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24649 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24650 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24651 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024652 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024653 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24654
24655 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24656 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24657 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24658 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24659 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24660 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24661 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24662 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24663 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24664 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24665 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24666 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24667 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24668 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24669 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24670 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024671 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024672 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24673
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024674 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24675 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24676 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24677 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24678 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24679 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24680 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24681 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24682 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24683 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24684 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24685 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24686 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24687 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24688 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24689 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024690 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024691 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24692
24693 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24694 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24695 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24696 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24697 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24698 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24699 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24700 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24701 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24702 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24703 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24704 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24705 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24706 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24707 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24708 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024709 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024710 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24711
24712 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24713 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24714 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24715 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24716 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24717 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24718 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24719 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24720 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24721 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24722 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24723 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24724 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24725 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24726 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24727 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024728 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024729 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24730
24731 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24732 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24733 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24734 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24735 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24736 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24737 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24738 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24739 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24740 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24741 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24742 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24743 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24744 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24745 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24746 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024747 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024748 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24749
24750 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24751 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24752 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24753 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24754 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24755 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24756 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24757 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24758 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24759 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24760 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24761 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24762 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24763 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24764 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24765 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024766 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024767 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24768
24769 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24770 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24771 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24772 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24773 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24774 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24775 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24776 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24777 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24778 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24779 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24780 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24781 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24782 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24783 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24784 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024785 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024786 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24787
24788 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24789 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24790 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24791 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24792 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24793 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24794 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24795 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24796 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24797 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24798 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24799 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24800 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24801 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24802 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24803 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024804 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024805 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24806
24807 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24808 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24809 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24810 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24811 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24812 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24813 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24814 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24815 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24816 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24817 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24818 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24819 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24820 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24821 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24822 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024823 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024824 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24825
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024826 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24827 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24828 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24829 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24830 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24831 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24832 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24833 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24834 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24835 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24836 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24837 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24838 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24839 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24840 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24841 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024842 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024843 {"HDMI", NULL, "HDMI Mixer"},
24844
24845 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24846 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24847 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24848 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24849 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24850 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24851 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24852 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24853 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24854 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24855 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24856 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24857 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24858 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24859 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24860 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024861 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024862 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24863
Karthikeyan Mani57550082018-05-03 18:43:58 -070024864 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24865 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24866 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24867 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24868 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24869 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24870 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24871 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24872 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24873 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24874 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24875 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24876 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24877 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24878 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24879 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024880 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024881 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24882
Ralf Herzc8701f72018-06-20 11:37:35 +020024883 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24884 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24885 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24886 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24887 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24888 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24889 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24890 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24891 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24892 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24893 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24894 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24895 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24896 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24897 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24898 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024899 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024900 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24901
24902 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24903 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24904 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24905 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24906 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24907 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24908 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24909 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24910 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24911 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24912 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24913 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24914 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24915 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24916 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24917 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024918 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024919 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024920
24921 /* incall */
24922 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24923 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
Anurag Chouhanb2a024a2019-10-09 11:39:08 +053024924 {"Incall_Music Audio Mixer", "MultiMedia4", "MM_DL4"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024925 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24926 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24927 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24928 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24929 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24930 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24931 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24932 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24933 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24934 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24935 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24936 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24937 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24938
24939 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24940 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24941 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24942 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24943 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24944 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24945 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24946 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24947 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24948 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24949 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24950 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24951 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24952 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24953 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24954 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024955 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024956 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24957
24958 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24959 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24960 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24961 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24962 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24963 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24964 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24965 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24966 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24967 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24968 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24969 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24970 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24971 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24972 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24973 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024974 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024975 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24976
Surendar Karka3ef3d812018-09-28 18:52:35 +053024977 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24978 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24979 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24980 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24981 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24982 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24983 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24984 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24985 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24986 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24987 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24988 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24989 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24990 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24991 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24992 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24993 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24994 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024996 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24997 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24998 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24999 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25000 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25001 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25002 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25003 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25004 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25005 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25006 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25007 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25008 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25009 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25010 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25011 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025012 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025013 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
25014
25015 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25016 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25017 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25018 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25019 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25020 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25021 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
25022 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25023 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25024 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025025 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025026 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25027 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025028 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025029 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025030 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025031 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025032 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025033 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025034 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025035 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025036 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025037 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025038 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025039 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025040 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025041 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25042 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025043 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025044 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025045 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25046 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25047 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25048 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25049 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025050 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25051 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025052 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025053 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025054 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025055 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25056 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25057 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025058 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025059 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25060 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25061 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25062 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25063 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025064 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025065 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025066 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025067 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25068 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25069 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025070 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025071 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25072 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025073 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025074 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025075 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025076 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025077 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025078 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025079 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025080 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25081 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025082 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025083 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025084 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025085 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025086 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25087 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25088 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025089 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025090 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025091 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25092 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25093 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025094 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025095
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025096 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25097 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25098 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25099 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25100 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25101 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25102 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25103 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25104 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25105 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25106 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25107 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25108 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25109 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25110 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25111 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025112 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025113 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
25114
25115 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25116 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25117 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25118 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25119 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25120 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25121 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25122 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25123 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25124 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25125 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25126 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25127 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25128 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25129 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025130 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025131 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
25132
25133 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25134 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25135 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25136 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25137 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25138 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25139 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25140 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25141 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25142 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25143 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25144 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25145 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25146 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025147 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025148 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
25149
25150 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25151 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25152 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25153 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25154 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25155 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25156 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25157 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25158 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25159 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25160 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25161 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25162 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25163 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025164 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025165 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
25166
25167 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25168 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
25169
25170 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25171 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25172
25173 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25174 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25175 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25176 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25177 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25178 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25179 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25180 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025181 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025182 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25183 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25184 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25185 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25186 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25187 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25188 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025189 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025190 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
Jhansi Konathala8cf03d42019-08-20 19:27:39 +053025191 {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025192
25193 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25194 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25195 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25196 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25197 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25198 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25199 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25200 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25201 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25202 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25203 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25204 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25205 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25206 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25207 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25208 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
25209
25210 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25211 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25212 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25213 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25214 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25215 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25216 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25217 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25218 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25219 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25220 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25221 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25222 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25223 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25224 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25225 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
25226
25227 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25228 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25229 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25230 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25231 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25232 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25233 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25234 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25235 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25236 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25237 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25238 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25239 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25240 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25241 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25242 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25243 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25244 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
25245
Karthikeyan Manic3700752019-03-11 18:33:53 -070025246 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25247 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25248 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25249 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25250 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25251 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25252 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25253 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25254 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25255 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25256 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25257 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25258 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25259 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25260 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25261 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
25262
Ralf Herz29e07132019-07-26 15:15:21 +020025263 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25264 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25265 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25266 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25267 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25268 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25269 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25270 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25271 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25272 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25273 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25274 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25275 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25276 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25277 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25278 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25279 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25280 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
25281
25282 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25283 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25284 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25285 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25286 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25287 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25288 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25289 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25290 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25291 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25292 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25293 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25294 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25295 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25296 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25297 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25298 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25299 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
25300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025301 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25302 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25303 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25304 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25305 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25306 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25307 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25308 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25309 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25310 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25311 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25312 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25313 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25314 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25315 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25316 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025317 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025318 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025319 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25320
25321 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25322 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25323 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25324 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25325 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25326 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25327 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25328 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25329 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25330 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25331 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25332 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25333 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25334 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25335 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25336 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025337 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025338 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025339 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25340
25341 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25342 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25343 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25344 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25345 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25346 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25347 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25348 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25349 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25350 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25351 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25352 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25353 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25354 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25355 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25356 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025357 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025358 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025359 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25360
25361 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25362 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25363 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25364 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25365 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25366 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25367 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25368 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25369 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25370 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25371 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25372 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25373 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25374 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25375 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25376 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025377 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025378 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025379 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25380
25381 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25382 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25383 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25384 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25385 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25386 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25387 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25388 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25389 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25390 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25391 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25392 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25393 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25394 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25395 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25396 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25397 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25398
25399 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25400 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25401 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25402 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25403 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25404 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25405 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25406 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25407 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25408 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25409 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25410 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25411 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25412 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25413 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25414 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025415 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025416 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025417 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25418
25419 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25420 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25421 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25422 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25423 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25424 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25425 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25426 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25427 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25428 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25429 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25430 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25431 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25432 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25433 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25434 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025435 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025436 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025437 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25438
25439 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25440 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25441 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25442 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25443 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25444 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25445 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25446 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25447 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25448 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25449 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25450 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25451 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25452 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25453 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25454 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025455 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025456 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025457 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25458
25459 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25460 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25461 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25462 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25463 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25464 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25465 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25466 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25467 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25468 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25469 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25470 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25471 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25472 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25473 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25474 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025475 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025476 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025477 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25478
25479 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25480 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25481 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25482 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25483 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25484 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25485 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25486 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25487 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25488 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25489 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25490 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25491 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25492 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25493 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25494 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25495 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25496
25497 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25498 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25499 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25500 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25501 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25502 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25503 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25504 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25505 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25506 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25507 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25508 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25509 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25510 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25511 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25512 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025513 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025514 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025515 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25516
25517 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25518 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25519 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25520 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25521 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25522 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25523 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25524 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25525 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25526 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25527 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25528 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25529 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25530 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25531 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25532 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25533 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25534
25535 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25536 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25537 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25538 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25539 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25540 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25541 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25542 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25543 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25544 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25545 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25546 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25547 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25548 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25549 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25550 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025551 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025552 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025553 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25554
25555 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25556 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25557 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25558 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25559 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25560 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25561 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25562 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25563 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25564 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25565 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25566 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25567 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25568 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25569 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25570 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025571 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025572 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025573 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25574
25575 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25576 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25577 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25578 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25579 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25580 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25581 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25582 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25583 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25584 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25585 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25586 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25587 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25588 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25589 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25590 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025591 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025592 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025593 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25594
25595 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25596 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25597 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25598 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25599 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25600 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25601 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25602 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25603 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25604 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25605 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25606 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25607 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25608 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25609 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25610 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025611 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025612 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025613 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25614
25615 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25616 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25617 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25618 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25619 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25620 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25621 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25622 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25623 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25624 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25625 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25626 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25627 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25628 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25629 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25630 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25631 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025632 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025633 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025634 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25635
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025636 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25637 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25638 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25639 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25640 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25641 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25642 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25643 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25644 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25645 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25646 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25647 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25648 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25649 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25650 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25651 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25652 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25653
25654 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25655 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25656 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25657 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25658 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25659 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25660 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25661 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25662 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25663 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25664 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25665 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25666 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25667 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25668 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25669 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25670 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025671 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025672 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025673 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25674
25675 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25676 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25677 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25678 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25679 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25680 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25681 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25682 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25683 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25684 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25685 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25686 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25687 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25688 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25689 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25690 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25691 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025692 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025693 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025694 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25695
25696 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25697 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25698 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25699 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25700 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25701 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25702 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25703 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25704 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25705 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25706 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25707 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25708 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25709 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25710 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25711 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25712 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025713 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025714 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025715 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25716
Rohit Kumara5077932017-09-10 22:05:05 +053025717 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25718 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25719 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25720 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25721 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25722 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25723 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25724 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25725 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25726 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25727 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25728 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25729 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25730 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25731 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25732 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25733 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025734 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025735 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025736 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25737
25738 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25739 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25740 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25741 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25742 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25743 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25744 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25745 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25746 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25747 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25748 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25749 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25750 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25751 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25752 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25753 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25754 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25755
25756 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25757 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25758 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25759 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25760 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25761 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25762 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25763 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25764 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25765 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25766 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25767 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25768 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25769 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25770 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25771 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25772 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025773 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025774 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025775 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25776
25777 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25778 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25779 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25780 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25781 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25782 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25783 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25784 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25785 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25786 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25787 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25788 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25789 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25790 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25791 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25792 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25793 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025794 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025795 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025796 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25797
25798 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25799 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25800 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25801 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25802 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25803 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25804 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25805 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25806 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25807 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25808 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25809 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25810 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25811 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25812 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25813 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25814 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025815 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025816 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025817 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25818
Karthikeyan Manic3700752019-03-11 18:33:53 -070025819 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25820 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25821 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25822 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25823 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25824 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25825 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25826 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25827 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25828 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25829 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25830 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25831 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25832 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25833 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25834 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25835 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25836 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25837 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25838
25839 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25840 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25841 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25842 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25843 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25844 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25845 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25846 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25847 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25848 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25849 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25850 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25851 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25852 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25853 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25854 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25855 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25856
25857 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25858 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25859 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25860 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25861 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25862 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25863 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25864 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25865 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25866 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25867 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25868 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25869 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25870 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25871 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25872 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25873 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25874 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25875 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25876
25877 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25878 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25879 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25880 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25881 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25882 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25883 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25884 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25885 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25886 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25887 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25888 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25889 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25890 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25891 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25892 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25893 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25894 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25895 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25896
25897 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25898 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25899 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25900 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25901 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25902 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25903 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25904 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25905 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25906 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25907 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25908 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25909 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25910 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25911 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25912 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25913 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25914 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25915 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25916
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025917 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25918 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25919 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25920 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25921 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025922 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025923 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025924 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25925 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25926 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25927 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25928 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025929 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25930 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025931 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25932 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25933 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25934 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25935 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25936 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25937 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025938 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025939 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25940 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25941 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025942 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025943 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053025944 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025945 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25946 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025947 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025948 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25949 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025950 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25951 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25952 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025953 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025954 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25955 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25956 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025957 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025958 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025959 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25960 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25961 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025962 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25963 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25964 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025965 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25966 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25967 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25968 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25969 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25970 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25971 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25972 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025973 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025974 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25975 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25976 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025977 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025978 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25979 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25980 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025981 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025982 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025983 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25984 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25985 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025986 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025987 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025988 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25989 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25990 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25991 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25992 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025993 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025994 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25995 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25996 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25997 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025998 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025999 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026000
26001 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26002 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26003 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26004 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26005 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26006 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26007 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26008 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26009 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26010 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26011 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26012 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26013 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26014 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26015 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26016 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026017 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026018 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26019 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26020 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26021 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026022 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26023 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26024 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26025 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026026 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26027 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26028 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26029 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26030 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026031 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026032 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26033 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26034 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26035 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26036 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26037 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026038 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26039 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026040
26041 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26042 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26043 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26044 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26045 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26046 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26047 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26048 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26049 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26050 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26051 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26052 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26053 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26054 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26055 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26056 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026057 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026058 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26059 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26060 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26061 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026062 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26063 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26064 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26065 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026066 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26067 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26068 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26069 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26070 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026071 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026072 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26073 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26074 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26075 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26076 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26077 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026078 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26079 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026080
26081 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26082 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26083 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26084 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26085 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26086 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26087 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26088 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26089 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26090 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26091 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26092 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26093 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26094 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26095 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26096 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026097 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026098 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26099 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26100 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26101 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026102 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26103 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26104 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26105 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026106 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26107 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26108 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26109 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26110 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026111 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026112 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26113 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26114 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26115 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26116 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26117 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026118 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26119 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026120
26121 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26122 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26123 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26124 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26125 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26126 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26127 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26128 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26129 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26130 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26131 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26132 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26133 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26134 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26135 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26136 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026137 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026138 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26139 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26140 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26141 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026142 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26143 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26144 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26145 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026146 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26147 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26148 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26149 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26150 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026151 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026152 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26153 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26154 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26155 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26156 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26157 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026158 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26159 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026160
26161 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26162 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26163 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26164 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26165 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26166 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26167 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26168 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26169 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26170 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26171 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26172 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26173 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26174 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26175 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26176 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026177 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026178 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26179 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26180 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26181 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026182 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26183 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26184 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26185 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026186 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26187 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26188 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26189 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26190 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026191 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026192 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26193 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26194 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26195 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26196 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26197 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026198 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26199 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026200
26201 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26202 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26203 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26204 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26205 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26206 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26207 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26208 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26209 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26210 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26211 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26212 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26213 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26214 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26215 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26216 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026217 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026218 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26219 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26220 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26221 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026222 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26223 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26224 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26225 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026226 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26227 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26228 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26229 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26230 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026231 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026232 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26233 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26234 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26235 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26236 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26237 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026238 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26239 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026240
26241 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26242 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26243 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26244 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26245 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26246 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26247 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26248 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26249 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26250 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26251 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26252 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26253 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26254 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26255 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26256 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026257 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026258 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26259 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26260 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26261 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026262 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26263 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26264 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26265 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026266 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26267 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26268 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26269 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26270 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026271 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026272 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26273 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26274 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26275 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26276 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26277 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026278 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26279 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026280
Samyak Jain810e42a2019-01-07 17:53:34 +053026281 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026282 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26283 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26284 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26285 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26286 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26287 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26288 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26289 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026290 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26291 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26292 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26293 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026294 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26295 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26296 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26297 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026298 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26299 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26300 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26301 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26302 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026303 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026304 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26305 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26306 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26307 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26308 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26309 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026310 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26311 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026312 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026313
Laxminath Kasam38070be2017-08-17 18:21:59 +053026314 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26315 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26316 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26317 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26318 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26319 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26320 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26321 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026322 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26323 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26324 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26325 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26326 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26327 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026328 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026330 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26331 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26332 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26333 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026334 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026335 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026336 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26337 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26338 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26339 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26340 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26341 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26342 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26343 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26344 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26345 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26346 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26347 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26348 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26349 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26350 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26351 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026352 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26353 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26354 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26355 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026356 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26357 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26358 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26359 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026360 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26361 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26362 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26363 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26364 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026365 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026366 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26367 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26368 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26369 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26370 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26371 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026372 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26373 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026374 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026375
Derek Chen07c6d1c2018-07-05 10:39:25 -070026376 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26377 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26378 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26379 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26380 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26381 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26382 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26383 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26384 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26385 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26386 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26387 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26388 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26389 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26390 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26391 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26392 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26393 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26394 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26395 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26396 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26397 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026398 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26399 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26400 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26401 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026402 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26403 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26404 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26405 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26406 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026407 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026408 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26409 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26410 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26411 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26412 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26413 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26414 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26415 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026416 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026417
Derek Chenb097d922019-07-31 17:28:02 -070026418 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26419 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26420 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26421 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26422 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26423 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26424 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26425 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26426 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26427 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26428 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26429 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26430 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26431 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26432 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26433 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26434 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26435 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26436 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26437 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26438
Surendar Karkac1cde372018-08-14 18:56:24 +053026439 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026440 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026441 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26442 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026443 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026444 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26445 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26446 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26447 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26448 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026449 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026450 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26451 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026452 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026453
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026454 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26455 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26456 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26457 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26458 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26459 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026460 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026461
Asish Bhattacharya34504582017-08-08 12:55:01 +053026462 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26463 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26464 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26465 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26466 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26467 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26468 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26469 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26470 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26471 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26472 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26473 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26474 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26475 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26476 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26477 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26478 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026479 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26480 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26481 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26482 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26483 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026484 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026485 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26486 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26487 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26488 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26489 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26490 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026491 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26492 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026493 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026494
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026495 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26496 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26497 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26498 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26499 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26500 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026501 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026502
26503 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26504 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26505 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26506 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26507 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26508 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026509 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026510 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26511 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026512
26513 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26514 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26515 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26516 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26517 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26518 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026519 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026520 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26521 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026522
26523 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26524 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26525 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26526 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26527 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26528 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026529 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026530 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26531 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026532
26533 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26534 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26535 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26536 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26537 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26538 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026539 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026540 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26541 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026542
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026543 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26544 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26545 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26546 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26547 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26548 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26549 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26550 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26551 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26552
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026553 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26554 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26555 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26556 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26557 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26558 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26559 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26560 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26561 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26562 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26563 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26564 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26565 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26566 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26567 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26568 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26569 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26570 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26571
26572 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26573 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26574 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26575 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26576 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26577 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26578 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26579 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26580 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26581 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26582 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26583 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26584 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26585 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26586 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26587 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26588 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26589 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26590
26591 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26592 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26593 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26594 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26595 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26596 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26597 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26598 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26599 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26600 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26601 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26602 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26603 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26604 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26605 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26606 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26607 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26608
26609 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26610 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26611 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26612 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26613 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26614 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26615 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26616 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26617 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26618 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26619 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26620 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26621 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26622 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26623 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26624 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26625 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26626
26627 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26628 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26629 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026630 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026631 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26632 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26633 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026634 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26635 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026636 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026637 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26638 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026639 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026640 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26641 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026642 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026643 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26644 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26645 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026646 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26647 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026648 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026649 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26650 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26651 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26652
26653 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26654 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26655 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026656 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026657 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26658 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26659 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026660 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26661 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026662 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026663 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26664 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026665 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026666 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26667 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26668 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26669 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26670 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26671 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26672 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26673 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26674 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026675 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026676 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026677 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26678 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26679 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26680 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026681 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026682 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026683 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026684 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26685 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026686 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026687
26688 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26689 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26690 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26691 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26692 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26693 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26694 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26695 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26696 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26697 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26698 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26699 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26700 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26701 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26702 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26703 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026704 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026705 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26706
26707 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26708 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26709 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26710 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26711 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26712 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26713 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26714 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26715 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26716 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26717 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26718 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26719 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26720 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26721 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26722 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026723 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026724 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26725
26726 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26727 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26728 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26729 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26730 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26731 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26732 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26733 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26734 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26735 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26736 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26737 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26738 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26739 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26740 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26741 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26742 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26743
26744 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26745 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26746 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26747 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26748 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26749 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26750 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26751 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26752 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26753 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26754 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26755 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26756 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26757 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26758 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26759 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26760 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26761
Rohit Kumara5077932017-09-10 22:05:05 +053026762 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26763 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26764 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26765 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26766 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26767 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26768 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26769 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26770 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26771 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26772 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26773 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26774 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26775 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26776 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26777 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26778 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26779
Karthikeyan Manic3700752019-03-11 18:33:53 -070026780 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26781 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26782 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26783 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26784 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26785 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26786 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26787 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26788 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26789 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26790 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26791 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26792 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26793 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26794 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26795 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26796 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026798 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26799 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26800 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26801 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26802 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26803 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26804
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026805 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26806 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26807 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26808 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26809
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026810 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026811 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26812 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026813 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26814 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26815 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26816 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26817 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26818
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026819 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26820 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026821 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26822 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26823 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26824 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26825
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026826 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26827 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026828 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26829 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26830 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26831 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026833 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26834 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026835 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26836 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26837 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26838 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26839
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026840 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26841 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026842 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26843 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26844 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26845 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26846
Karthikeyan Mani57550082018-05-03 18:43:58 -070026847 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26848 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26849 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26850 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26851 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26852 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26853
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026854 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26855 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26856 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26857 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26858 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026859 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26860
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026861 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26862 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26863 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26864 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26865 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26866 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26867
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026868 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26869 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026870 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26871 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26872 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26873 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26874
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026875 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26876 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026877 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26878 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26879 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26880 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26881
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026882 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26883 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026884 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26885 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26886 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26887 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26888
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026889 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26890 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026891 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26892 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26893 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26894 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26895
Rohit Kumara5077932017-09-10 22:05:05 +053026896 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26897 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026898 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26899 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26900 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26901 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26902
Karthikeyan Manic3700752019-03-11 18:33:53 -070026903 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26904 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26905 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26906 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26907 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26908 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26909
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026910 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26911 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26912 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26913 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26914 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26915 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26916 {"HDMI", NULL, "HDMI_DL_HL"},
26917
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026918 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026919 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26920 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026921 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26922 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26923 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026924 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026925 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26926
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026927 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026928 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26929 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026930 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26931 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26932 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26933 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26934 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26935
26936 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26937 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26938 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26939 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26940 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26941 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26942
26943 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26944 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26945 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26946 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26947 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26948 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26949
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026950 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026951 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26952 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026953 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26954 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26955 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26956 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26957 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26958
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026959 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026960 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26961 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026962 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26963 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26964 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26965 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026967 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026968 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26969 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026970 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26971 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26972 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26973 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26974
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026975 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026976 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26977 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26978 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26979 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26980 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26981 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26982 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26983 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26984
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026985 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026986 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26987 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26988 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26989 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26990 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26991 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26992 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26993 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26994
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026995 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026996 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26997 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26998 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26999 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
27000 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27001 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27002 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27003 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
27004
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027005 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027006 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27007 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27008 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27009 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
27010 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27011 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27012 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27013 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
27014
Karthikeyan Manic3700752019-03-11 18:33:53 -070027015 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27016 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27017 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27018 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27019 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
27020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027021 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27022 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
27023
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053027024 {"QUIN_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27025 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_Voice Mixer"},
27026
Kunlei Zhang478379f2019-08-01 17:05:33 +080027027 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027028 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27029 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27030 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
27031
Kunlei Zhang478379f2019-08-01 17:05:33 +080027032 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027033 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27034 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27035 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
27036
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053027037 {"RX_CDC_DMA_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
27038 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27039 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27040 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1_Voice Mixer"},
27041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027042 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27043 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27044 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27045 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027046 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027047 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070027048 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070027049 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027050 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027051 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
27052 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
27053
27054 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27055 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27056 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27057 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27058 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27059 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27060 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27061 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27062 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27063 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027064 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27065 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027066
27067 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27068 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27069 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27070 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27071
27072 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27073 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27074 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27075 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27076
27077 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27078 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27079 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27080 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27081
27082 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27083 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27084 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27085 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27086
27087 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27088 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27089 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27090 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27091
27092 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27093 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27094 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27095 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27096
27097 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27098 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27099 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27100 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27101
Laxminath Kasam38070be2017-08-17 18:21:59 +053027102 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27103 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27104 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27105 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27106 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27107 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27108 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27109 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27110 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27111 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027112 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27113 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070027114
27115 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27116 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27117 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27118 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27119
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027120 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27121 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27122 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27123 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27124
27125 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27126 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27127 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27128 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27129
27130 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27131 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27132 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27133 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27134
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027135 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27136 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27137 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27138 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27139
27140 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27141 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27142 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27143 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080027144
27145 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27146 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27147 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27148 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27149 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27150 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27151 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27152 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27153
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027154 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
27155 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
27156 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
27157 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
27158 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
27159 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
27160 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
27161 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053027162 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053027163 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027164 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
27165 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
27166 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027167 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
27168 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053027169 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027171 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
27172 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
27173 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027174 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027175 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
27176 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
27177 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
27178 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
27179 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
27180 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
27181 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
27182 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
27183 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
27184 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
27185 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
27186 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027187 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027188 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027189 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027190 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
27191 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
27192 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
27193 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
27194 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
27195 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027196 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
27197 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027198 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027199 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
27200
27201 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
27202 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027203 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027204 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
27205 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
27206 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
27207 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
27208 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
27209 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
27210 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
27211 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
27212 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
27213 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
27214 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
27215 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
27216 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027217 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027218 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027219 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
27220 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
27221 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
27222 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
27223 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
27224 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027225 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
27226 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070027227 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027228 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
27229
27230 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
27231 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027232 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027233 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
27234 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
27235 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
27236 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
27237 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
27238 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
27239 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
27240 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
27241 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
27242 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
27243 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
27244 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027245 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027246 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027247 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027248 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080027249 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
27250 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
27251 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
27252 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
27253 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
27254 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027255 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
27256
27257 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
27258 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
27259 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
27260 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
27261 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
27262 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
27263 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
27264 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
27265 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
27266 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080027267 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
27268 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027269 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
27270 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
27271 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
27272 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
27273 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053027274 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27275 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
27276 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027277 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27278 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Laxminath Kasame0eca372019-10-03 19:34:45 +053027279 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027280 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027281 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27282 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27283 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27284 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27285 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27286 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27287 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27288 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027289 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27290 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027291 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027292 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027293 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027294 {"LSM1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027295 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
27296
27297 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27298 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27299 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27300 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27301 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27302 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27303 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27304 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027305 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27306 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027307 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027308 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027309 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027310 {"LSM2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027311 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
27312
27313
27314 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27315 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27316 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27317 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27318 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27319 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27320 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27321 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027322 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27323 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027324 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027325 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027326 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027327 {"LSM3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027328 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27329
27330
27331 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27332 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27333 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27334 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27335 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27336 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27337 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27338 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027339 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27340 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027341 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027342 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027343 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027344 {"LSM4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027345 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27346
27347 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27348 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27349 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27350 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27351 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27352 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27353 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27354 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027355 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27356 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027357 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027358 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027359 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027360 {"LSM5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027361 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27362
27363 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27364 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27365 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27366 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27367 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27368 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027369 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27370 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027371 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027372 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027373 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027374 {"LSM6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027375 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27376
27377 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27378 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27379 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27380 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27381 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27382 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027383 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27384 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027385 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027386 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027387 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027388 {"LSM7 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027389 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27390
27391 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27392 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27393 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27394 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27395 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27396 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027397 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27398 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027399 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027400 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027401 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027402 {"LSM8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027403 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27404
27405
27406 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27407 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27408 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27409 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27410 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27411 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27412 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27413 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27414 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27415 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27416 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027417 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027418 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027419 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27420 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27421 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27422 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27423 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27424 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27425
27426 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27427 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27428 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27429 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27430 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27431 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27432 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27433 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27434 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27435 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27436 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27437 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027438 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27439 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027440 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027441 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027442 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027443 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27444 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27445 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27446 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27447
27448 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27449 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27450 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27451 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27452 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27453 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27454 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27455 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27456 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27457 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27458 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27459
27460 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27461 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027462 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27463 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027464 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27465 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027466 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27467 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27468 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27469 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27470 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27471 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27472 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27473 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27474 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27475 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27476
27477 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27478 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27479 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27480 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27481 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27482 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27483 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27484 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27485 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27486 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27487 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27488 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27489 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27490 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27491 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27492 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027493 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027494 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27495 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27496 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27497 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027498 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027499 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27500 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27501 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27502 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27503 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27504 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27505 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27506 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027507 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027508 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27509 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27510 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27511 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027512 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027513 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27514 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27515 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27516 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027517 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027518 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27519 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27520 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27521 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027522 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027523 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27524 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27525 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27526 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27527 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27528 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27529 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27530 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027531
27532 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27533 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27534 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27535 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27536 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27537 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27538 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27539 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27540 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27541 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27542 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27543 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27544 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27545 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27546 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27547 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027548 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27549 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27550 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27551 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027552 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27553 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27554 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27555 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027556 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27557
27558 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27559 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27560 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27561 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27562 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27563 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27564 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27565 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27566 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27567 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27568 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27569 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27570 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27571 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27572 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27573 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027574 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27575 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27576 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27577 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027578 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27579 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27580 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27581 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027582 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27583
27584 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27585 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27586 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27587 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27588 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27589 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27590 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27591 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27592 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27593 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27594 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27595 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27596 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27597 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27598 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27599 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027600 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27601 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27602 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27603 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027604 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27605 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27606 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27607 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027608 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27609
27610 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27611 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27612 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27613 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27614 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27615 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27616 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27617 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27618 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27619 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27620 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27621 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27622 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27623 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27624 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27625 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027626 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27627 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27628 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27629 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027630 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27631 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27632 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27633 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027634 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27635
27636 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27637 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27638 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27639 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27640 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27641 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27642 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27643 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27644 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27645 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27646 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27647 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27648 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27649 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27650 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27651 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027652 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27653 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27654 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27655 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027656 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27657 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27658 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27659 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027660 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27661
27662 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27663 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27664 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27665 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27666 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27667 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27668 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27669 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27670 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27671 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27672 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27673 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27674 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27675 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27676 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27677 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027678 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27679 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27680 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27681 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027682 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27683 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27684 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27685 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027686 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27687
27688 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27689 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27690 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27691 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27692 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27693 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27694 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27695 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27696 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27697 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27698 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27699 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27700 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27701 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27702 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27703 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027704 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27705 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27706 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27707 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027708 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27709 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27710 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27711 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027712 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27713
27714 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27715 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27716 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27717 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27718 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27719 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27720 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27721 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27722 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27723 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27724 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27725 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27726 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27727 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27728 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27729 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027730 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27731 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27732 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27733 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027734 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27735 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27736 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27737 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027738 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27739
Derek Chenfdcc0982018-10-02 15:14:03 -070027740 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27741 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27742
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027743 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27744 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27745 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27746 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27747 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27748 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27749 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27750 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27751 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27752 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27753 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27754 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27755 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27756 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27757 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27758 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027759 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27760 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27761 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27762 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027763 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27764 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27765 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27766 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027767 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27768
27769 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27770 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27771 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27772 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27773 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27774 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27775 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27776 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27777 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27778 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27779 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27780 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27781 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27782 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27783 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27784 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027785 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27786 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27787 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27788 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027789 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27790 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27791 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27792 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027793 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27794
27795 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27796 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27797 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27798 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27799 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27800 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27801 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27802 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27803 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27804 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27805 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27806 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27807 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27808 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27809 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27810 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027811 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27812 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27813 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27814 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027815 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27816 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27817 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27818 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027819 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27820
27821 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27822 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27823 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27824 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27825 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27826 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27827 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27828 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27829 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27830 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27831 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27832 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27833 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27834 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27835 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27836 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027837 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27838 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27839 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27840 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027841 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27842 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27843 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27844 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027845 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27846
27847 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27848 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27849 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27850 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27851 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27852 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27853 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27854 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27855 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27856 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27857 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27858 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27859 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27860 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27861 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27862 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027863 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27864 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27865 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27866 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027867 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27868 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27869 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27870 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027871 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27872
27873 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27874 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27875 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27876 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27877 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27878 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27879 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27880 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27881 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27882 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27883 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27884 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27885 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27886 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27887 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27888 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027889 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27890 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27891 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27892 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027893 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27894 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27895 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27896 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027897 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27898
27899 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27900 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27901 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27902 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27903 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27904 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27905 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27906 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27907 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27908 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27909 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27910 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27911 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27912 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27913 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27914 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027915 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27916 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27917 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27918 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027919 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27920 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27921 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27922 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027923 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27924
27925 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27926 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27927 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27928 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27929 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27930 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27931 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27932 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27933 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27934 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27935 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27936 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27937 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27938 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27939 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27940 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027941 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27942 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27943 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27944 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027945 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27946 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27947 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27948 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027949 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27950
Derek Chenb9048cb2019-03-07 14:54:13 -050027951 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027952 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027953 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27954
Rohit Kumara5077932017-09-10 22:05:05 +053027955 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27956 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27957 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27958 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27959 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27960 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27961 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27962 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27963 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27964 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27965 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27966 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27967 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27968 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27969 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27970 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27971 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27972 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27973 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27974 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027975 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27976 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27977 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27978 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027979 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027980
27981 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27982 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27983 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27984 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27985 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27986 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27987 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27988 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27989 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27990 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27991 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27992 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27993 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27994 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27995 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27996 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27997 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27998 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27999 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28000 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028001 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28002 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28003 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28004 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028005 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028006
28007 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28008 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28009 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28010 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28011 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28012 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28013 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28014 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28015 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28016 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28017 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28018 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28019 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28020 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28021 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28022 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28023 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28024 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28025 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28026 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028027 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28028 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28029 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28030 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028031 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028032
28033 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28034 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28035 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28036 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28037 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28038 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28039 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28040 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28041 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28042 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28043 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28044 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28045 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28046 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28047 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28048 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28049 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28050 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28051 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28052 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028053 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28054 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28055 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28056 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028057 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028058
28059 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
28060 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080028061 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
28062 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028063
Karthikeyan Manic3700752019-03-11 18:33:53 -070028064 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28065 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28066 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28067 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28068 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28069 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28070 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28071 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28072 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28073 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28074 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28075 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28076 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28077 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28078 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28079 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28080 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28081 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28082 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28083 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28084 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
28085
28086 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28087 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28088 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28089 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28090 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28091 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28092 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28093 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28094 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28095 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28096 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28097 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28098 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28099 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28100 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28101 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28102 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28103 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28104 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28105 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28106 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
28107
28108 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28109 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28110 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28111 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28112 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28113 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28114 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28115 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28116 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28117 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28118 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28119 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28120 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28121 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28122 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28123 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28124 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28125 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28126 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28127 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28128 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
28129
28130 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28131 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28132 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28133 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28134 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28135 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28136 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28137 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28138 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28139 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28140 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28141 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28142 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28143 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28144 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28145 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28146 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28147 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28148 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28149 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28150 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
28151
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028152 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28153 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28154 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28155 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028156 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028157 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028158 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28159 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28160 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28161 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028162 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028163 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28164 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
28165
28166 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28167 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28168 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28169 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028170 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028171 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028172 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28173 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28174 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028175 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028176 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28177 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28178 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
28179
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028180 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28181 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080028182 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028183 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028184 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
28185
28186 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28187 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028188 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028189 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028190
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053028191 {"RX_CDC_DMA_RX_1 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28192 {"RX_CDC_DMA_RX_1 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28193 {"RX_CDC_DMA_RX_1 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28194 {"RX_CDC_DMA_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28195 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Port Mixer"},
28196
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028197 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28198 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28199 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28200 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28201 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028202 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028203 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28204 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28205 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28206 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028207 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028208 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028209 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28210 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28211 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28212 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28213 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028214 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028215 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028216 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28217 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
28218 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28219 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28220 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
28221 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
28222 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
28223 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
28224 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
28225 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
28226
28227
28228 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28229 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28230 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28231 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28232 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053028233 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028234 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028235 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
28236
28237 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28238 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28239 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028240 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028241 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
28242
28243 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28244 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28245 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28246 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
28247
28248 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28249 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
28250 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28251 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
28252
Rohit Kumara5077932017-09-10 22:05:05 +053028253 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28254 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
28255 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28256 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
28257
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028258 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28259 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28260 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28261 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28262 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28263 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28264 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28265 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028266 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028267 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028268 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
28269 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28270 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28271 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28272 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28273 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28274 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28275 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28276 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28277 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28278 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
28279
28280 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28281 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28282 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28283 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28284 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28285 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28286 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28287 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28288 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28289 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28290 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28291 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
28292
28293 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28294 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28295 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28296 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28297 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28298 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28299 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28300 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28301 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28302 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28303 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070028304 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028305 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
28306
kunleizdf5a00a2017-11-27 15:27:36 +080028307 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28308 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028309 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028310
28311 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28312 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028313 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028314
28315 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28316 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028317 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
28318
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028319 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
28320 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028321 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28322 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28323 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28324 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
28325
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028326 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
28327 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028328 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28329 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28330 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28331 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28332
28333 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28334 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28335 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28336 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28337 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28338 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28339 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28340 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28341 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28342 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28343 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28344 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28345 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28346
28347 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28348 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28349 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28350 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28351 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028352 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028353 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28354 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28355 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28356 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28357 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28358 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28359 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28360 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28361
28362 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28363 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28364
28365 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28366 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28367
Karthikeyan Mani57550082018-05-03 18:43:58 -070028368 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28369 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28370
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028371 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28372 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28373
28374 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28375 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28376 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28377
28378 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28379 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28380 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28381 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028382 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028383 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028384 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28385 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28386 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28387 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028388 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028389 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28390
28391 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28392 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28393 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28394 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028395 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028396 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028397 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28398 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28399 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028400 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028401 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28402
28403 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28404 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28405 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28406 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028407 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028408 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028409 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28410 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28411 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28412
28413 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28414 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28415 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28416 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028417 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028418 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028419 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28420 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28421 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28422 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28423 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28424
Rohit Kumara5077932017-09-10 22:05:05 +053028425 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28426 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28427 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28428 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28429 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028430 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028431 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28432 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28433 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28434
Karthikeyan Manic3700752019-03-11 18:33:53 -070028435 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28436 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28437 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28438 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28439 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28440 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28441 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28442 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28443
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028444 /* Backend Enablement */
28445
28446 {"BE_OUT", NULL, "PRI_I2S_RX"},
28447 {"BE_OUT", NULL, "SEC_I2S_RX"},
28448 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28449 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28450 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28451 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28452 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28453 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28454 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28455 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28456 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028457 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028458 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28459 {"BE_OUT", NULL, "HDMI"},
28460 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028461 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028462 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28463 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028464 {"BE_OUT", NULL, "MI2S_RX"},
28465 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28466 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028467 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028468 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28469 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28470 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28471 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28472 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28473 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028474 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28475 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28476 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028477 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28478 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28479 {"BE_OUT", NULL, "INT_FM_RX"},
28480 {"BE_OUT", NULL, "PCM_RX"},
28481 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28482 {"BE_OUT", NULL, "AUX_PCM_RX"},
28483 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28484 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28485 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028486 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028487 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028488 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28489 {"BE_OUT", NULL, "INT_FM_RX"},
28490 {"BE_OUT", NULL, "PCM_RX"},
28491 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28492 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28493 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28494 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28495 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28496 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28497 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28498 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28499 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28500 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28501 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028502 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028503 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28504 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28505 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28506 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28507 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28508 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28509 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28510 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28511 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028512 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028513 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28514 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28515 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28516 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028517 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028518 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28519 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28520 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28521 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028522 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28523 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028524 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28525 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28526 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28527 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28528 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28529 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28530 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28531 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028532
28533 {"PRI_I2S_TX", NULL, "BE_IN"},
28534 {"MI2S_TX", NULL, "BE_IN"},
28535 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28536 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28537 {"PRI_MI2S_TX", NULL, "BE_IN"},
28538 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028539 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028540 {"INT2_MI2S_TX", NULL, "BE_IN"},
28541 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028542 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028543 {"INT5_MI2S_TX", NULL, "BE_IN"},
28544 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028545 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028546 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28547 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28548 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28549 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28550 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28551 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28552 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28553 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028554 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028555 {"USB_AUDIO_TX", NULL, "BE_IN" },
28556 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28557 {"INT_FM_TX", NULL, "BE_IN"},
28558 {"PCM_TX", NULL, "BE_IN"},
28559 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28560 {"BE_OUT", NULL, "STUB_RX"},
28561 {"STUB_TX", NULL, "BE_IN"},
28562 {"STUB_1_TX", NULL, "BE_IN"},
28563 {"BE_OUT", NULL, "AUX_PCM_RX"},
28564 {"AUX_PCM_TX", NULL, "BE_IN"},
28565 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28566 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28567 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028568 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028569 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028570 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28571 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28572 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28573 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028574 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28575 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028576 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28577 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28578 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28579 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28580 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028581 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28582 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028583 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28584 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28585 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28586 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28587 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28588 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28589 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28590 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28591 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28592 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28593 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28594 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28595 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28596 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28597 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028598 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028599 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28600 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28601 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28602 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028603 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028604 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028605 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28606 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28607 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28608 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028609 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028610 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28611 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28612 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28613 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028614 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28615 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28616 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28617 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28618 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028619 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028620 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28621 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28622 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28623 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28624 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28625 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028626 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28627 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028628};
28629
28630static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28631 struct snd_pcm_hw_params *params)
28632{
28633 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28634 unsigned int be_id = rtd->dai_link->id;
28635
28636 if (be_id >= MSM_BACKEND_DAI_MAX) {
28637 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28638 return -EINVAL;
28639 }
28640
28641 mutex_lock(&routing_lock);
28642 msm_bedais[be_id].sample_rate = params_rate(params);
28643 msm_bedais[be_id].channel = params_channels(params);
28644 msm_bedais[be_id].format = params_format(params);
28645 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28646 __func__, msm_bedais[be_id].sample_rate,
28647 msm_bedais[be_id].format, be_id);
28648 mutex_unlock(&routing_lock);
28649 return 0;
28650}
28651
28652static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28653{
28654 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28655 unsigned int be_id = rtd->dai_link->id;
28656 int i, session_type, path_type, topology;
28657 struct msm_pcm_routing_bdai_data *bedai;
28658 struct msm_pcm_routing_fdai_data *fdai;
28659
28660 pr_debug("%s: substream->pcm->id:%s\n",
28661 __func__, substream->pcm->id);
28662
28663 if (be_id >= MSM_BACKEND_DAI_MAX) {
28664 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28665 return -EINVAL;
28666 }
28667
28668 bedai = &msm_bedais[be_id];
28669 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28670 0 : 1);
28671 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28672 path_type = ADM_PATH_PLAYBACK;
28673 else
28674 path_type = ADM_PATH_LIVE_REC;
28675
28676 mutex_lock(&routing_lock);
28677 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28678 if (!is_mm_lsm_fe_id(i))
28679 continue;
28680 fdai = &fe_dai_map[i][session_type];
28681 if (fdai->strm_id != INVALID_SESSION) {
28682 int idx;
28683 int port_id;
28684 unsigned long copp =
28685 session_copp_map[i][session_type][be_id];
28686 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28687 if (test_bit(idx, &copp))
28688 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028689
28690 if (idx >= MAX_COPPS_PER_PORT) {
28691 pr_debug("%s: copp idx is invalid, exiting\n",
28692 __func__);
28693 continue;
28694 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028695 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028696 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028697 topology = adm_get_topology_for_port_copp_idx(port_id,
28698 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028699 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028700 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028701 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28702 __func__, copp, i, session_type, be_id,
28703 topology);
28704 clear_bit(idx,
28705 &session_copp_map[i][session_type][be_id]);
28706 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028707 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028708 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028709 topology);
28710 }
28711 }
28712
28713 bedai->active = 0;
28714 bedai->sample_rate = 0;
28715 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028716 mutex_unlock(&routing_lock);
28717
28718 return 0;
28719}
28720
28721static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28722{
28723 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28724 unsigned int be_id = rtd->dai_link->id;
28725 int i, path_type, topology;
28726 int session_type = INVALID_SESSION;
28727 struct msm_pcm_routing_bdai_data *bedai;
28728 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028729 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028730 struct msm_pcm_routing_fdai_data *fdai;
28731 u32 session_id;
28732 struct media_format_info voc_be_media_format;
28733 bool is_lsm;
28734
28735 pr_debug("%s: substream->pcm->id:%s\n",
28736 __func__, substream->pcm->id);
28737
28738 if (be_id >= MSM_BACKEND_DAI_MAX) {
28739 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28740 return -EINVAL;
28741 }
28742
28743 bedai = &msm_bedais[be_id];
28744
28745 mutex_lock(&routing_lock);
28746 if (bedai->active == 1)
28747 goto done; /* Ignore prepare if back-end already active */
28748
28749 /* AFE port is not active at this point. However, still
28750 * go ahead setting active flag under the notion that
28751 * QDSP6 is able to handle ADM starting before AFE port
28752 * is started.
28753 */
28754 bedai->active = 1;
28755
28756 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28757 if (!(is_mm_lsm_fe_id(i) &&
28758 route_check_fe_id_adm_support(i)))
28759 continue;
28760
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028761 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28762 SESSION_TYPE_RX : SESSION_TYPE_TX;
28763 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028764 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028765 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028766 path_type = ADM_PATH_COMPRESSED_RX;
28767 else
28768 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028769 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028770 if ((fdai->passthr_mode != LEGACY_PCM) &&
28771 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028772 path_type = ADM_PATH_COMPRESSED_TX;
28773 else
28774 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028775 }
28776
28777 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28778 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028779 if (fdai->strm_id != INVALID_SESSION) {
28780 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028781 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028782
28783 if (session_type == SESSION_TYPE_TX &&
28784 fdai->be_srate &&
28785 (fdai->be_srate != bedai->sample_rate)) {
28786 pr_debug("%s: flush strm %d diff BE rates\n",
28787 __func__,
28788 fdai->strm_id);
28789
28790 if (fdai->event_info.event_func)
28791 fdai->event_info.event_func(
28792 MSM_PCM_RT_EVT_BUF_RECFG,
28793 fdai->event_info.priv_data);
28794 fdai->be_srate = 0; /* might not need it */
28795 }
28796 bits_per_sample = msm_routing_get_bit_width(
28797 bedai->format);
28798
28799 app_type =
28800 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28801 if (app_type && is_lsm) {
28802 app_type_idx =
28803 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28804 sample_rate =
28805 fe_dai_app_type_cfg[i][session_type][be_id]
28806 .sample_rate;
28807 bits_per_sample =
28808 lsm_app_type_cfg[app_type_idx].bit_width;
28809 } else if (app_type) {
28810 app_type_idx =
28811 msm_pcm_routing_get_app_type_idx(app_type);
28812 sample_rate =
28813 fe_dai_app_type_cfg[i][session_type]
28814 [be_id].sample_rate;
28815 bits_per_sample =
28816 app_type_cfg[app_type_idx].bit_width;
28817 } else
28818 sample_rate = bedai->sample_rate;
28819 /*
28820 * check if ADM needs to be configured with different
28821 * channel mapping than backend
28822 */
28823 if (!bedai->adm_override_ch)
28824 channels = bedai->channel;
28825 else
28826 channels = bedai->adm_override_ch;
28827 acdb_dev_id =
28828 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28829 topology = msm_routing_get_adm_topology(i, session_type,
28830 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028831
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028832 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28833 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28834 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028835 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28836
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028837 be_bit_width = msm_routing_get_bit_width(
28838 bedai->format);
28839
28840 if (hifi_filter_enabled && (bedai->sample_rate == 384000
28841 || bedai->sample_rate == 352800) &&
28842 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028843 bits_per_sample = msm_routing_get_bit_width(
28844 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053028845 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028846 sample_rate, channels, topology,
28847 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028848 app_type, acdb_dev_id,
28849 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028850 if ((copp_idx < 0) ||
28851 (copp_idx >= MAX_COPPS_PER_PORT)) {
28852 pr_err("%s: adm open failed\n", __func__);
28853 mutex_unlock(&routing_lock);
28854 return -EINVAL;
28855 }
28856 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28857 __func__, i, session_type, be_id);
28858 set_bit(copp_idx,
28859 &session_copp_map[i][session_type][be_id]);
28860
28861 if (msm_is_resample_needed(
28862 sample_rate,
28863 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028864 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028865 bedai->sample_rate);
28866
28867 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028868 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028869 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028870 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028871 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028872 topology, channels);
28873 }
28874 }
28875
28876 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28877 session_id = msm_pcm_routing_get_voc_sessionid(i);
28878 if (session_id) {
28879 pr_debug("%s voice session_id: 0x%x\n", __func__,
28880 session_id);
28881
28882 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28883 voc_path_type = RX_PATH;
28884 else
28885 voc_path_type = TX_PATH;
28886
28887 voc_set_route_flag(session_id, voc_path_type, 1);
28888
28889 memset(&voc_be_media_format, 0,
28890 sizeof(struct media_format_info));
28891
28892 voc_be_media_format.port_id = bedai->port_id;
28893 voc_be_media_format.num_channels = bedai->channel;
28894 voc_be_media_format.sample_rate = bedai->sample_rate;
28895 voc_be_media_format.bits_per_sample = bedai->format;
28896 /* Defaulting this to 1 for voice call usecases */
28897 voc_be_media_format.channel_mapping[0] = 1;
28898
28899 voc_set_device_config(session_id, voc_path_type,
28900 &voc_be_media_format);
28901
28902 if (voc_get_route_flag(session_id, RX_PATH) &&
28903 voc_get_route_flag(session_id, TX_PATH))
28904 voc_enable_device(session_id);
28905 }
28906 }
28907
28908 /* Check if backend is an external ec ref port and set as needed */
28909 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28910
28911 memset(&voc_be_media_format, 0,
28912 sizeof(struct media_format_info));
28913
28914 /* Get format info for ec ref port from msm_bedais[] */
28915 voc_be_media_format.port_id = bedai->port_id;
28916 voc_be_media_format.num_channels = bedai->channel;
28917 voc_be_media_format.bits_per_sample = bedai->format;
28918 voc_be_media_format.sample_rate = bedai->sample_rate;
28919 /* Defaulting this to 1 for voice call usecases */
28920 voc_be_media_format.channel_mapping[0] = 1;
28921 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28922 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28923 __func__, voc_be_media_format.port_id,
28924 voc_be_media_format.num_channels,
28925 voc_be_media_format.bits_per_sample,
28926 voc_be_media_format.sample_rate);
28927 }
28928
28929done:
28930 mutex_unlock(&routing_lock);
28931
28932 return 0;
28933}
28934
28935static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28936 int fe_id)
28937{
28938 int index, topo_id, be_idx;
28939 unsigned long pp_config = 0;
28940 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028941 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028942 bool compr_passthr_mode = true;
28943
28944 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28945
28946 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28947 pr_err("%s: Device pp params on invalid port %d\n",
28948 __func__, port_id);
28949 return -EINVAL;
28950 }
28951
28952 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28953 if (port_id == msm_bedais[be_idx].port_id)
28954 break;
28955 }
28956
28957 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28958 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28959 return -EINVAL;
28960 }
28961
28962 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28963 if (msm_bedais_pp_params[index].port_id == port_id)
28964 break;
28965 }
28966 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28967 pr_err("%s: Invalid backend pp params index %d\n",
28968 __func__, index);
28969 return -EINVAL;
28970 }
28971
28972 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28973 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28974 pr_err("%s: Invalid passthrough topology 0x%x\n",
28975 __func__, topo_id);
28976 return -EINVAL;
28977 }
28978
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028979 session_type =
28980 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28981 SESSION_TYPE_RX : SESSION_TYPE_TX;
28982
28983 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28984 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028985 compr_passthr_mode = false;
28986
28987 pp_config = msm_bedais_pp_params[index].pp_params_config;
28988 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28989 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28990 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28991 mute_on = msm_bedais_pp_params[index].mute_on;
28992 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28993 adm_send_compressed_device_mute(port_id,
28994 copp_idx,
28995 mute_on);
28996 }
28997 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28998 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28999 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
29000 &pp_config);
29001 latency = msm_bedais_pp_params[index].latency;
29002 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29003 adm_send_compressed_device_latency(port_id,
29004 copp_idx,
29005 latency);
29006 }
29007 return 0;
29008}
29009
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029010static uint32_t msm_routing_get_topology(size_t data_size, void *data)
29011{
29012 uint32_t topology = NULL_COPP_TOPOLOGY;
29013 void *cal_info = NULL;
29014 uint32_t size = 0;
29015
29016 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053029017 if (data_size < sizeof(struct audio_cal_type_basic) +
29018 sizeof(struct audio_cal_info_adm_top)) {
29019 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
29020 goto done;
29021 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029022 size = data_size - sizeof(struct audio_cal_type_basic);
29023 cal_info = kzalloc(size, GFP_KERNEL);
29024
29025 if (!cal_info)
29026 goto done;
29027
29028 memcpy(cal_info,
29029 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
29030
29031 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
29032 kfree(cal_info);
29033 cal_info = NULL;
29034
29035done:
29036 pr_debug("%s: Using topology %d\n", __func__, topology);
29037
29038 return topology;
29039}
29040
29041static void msm_routing_load_topology(size_t data_size, void *data)
29042{
29043 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029044 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029045
29046 topology_id = msm_routing_get_topology(data_size, data);
29047 if (topology_id != NULL_COPP_TOPOLOGY)
29048 ret = q6core_load_unload_topo_modules(topology_id,
29049 CORE_LOAD_TOPOLOGY);
29050 if (ret < 0)
29051 pr_debug("%s %d load topology failed\n",
29052 __func__, topology_id);
29053
29054}
29055
29056static void msm_routing_unload_topology(uint32_t topology_id)
29057{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029058 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029059
29060 if (topology_id != NULL_COPP_TOPOLOGY)
29061 ret = q6core_load_unload_topo_modules(topology_id,
29062 CORE_UNLOAD_TOPOLOGY);
29063 if (ret < 0)
29064 pr_debug("%s %d unload topology failed\n",
29065 __func__, topology_id);
29066
29067}
29068
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029069static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29070 struct snd_ctl_elem_value *ucontrol)
29071{
29072 int pp_id = ucontrol->value.integer.value[0];
29073 int port_id = 0;
29074 int index, be_idx, i, topo_id, idx;
29075 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029076 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029077 bool compr_passthr_mode = true;
29078
29079 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
29080
29081 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29082 port_id = msm_bedais[be_idx].port_id;
29083 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
29084 break;
29085 }
29086
29087 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29088 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29089 return -EINVAL;
29090 }
29091
29092 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29093 if (msm_bedais_pp_params[index].port_id == port_id)
29094 break;
29095 }
29096 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29097 pr_err("%s: Invalid pp params backend index %d\n",
29098 __func__, index);
29099 return -EINVAL;
29100 }
29101
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029102 session_type =
29103 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29104 SESSION_TYPE_RX : SESSION_TYPE_TX;
29105
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029106 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
29107 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029108 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
29109 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029110 compr_passthr_mode = false;
29111
29112 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29113 unsigned long copp =
29114 session_copp_map[i]
29115 [SESSION_TYPE_RX][be_idx];
29116 if (!test_bit(idx, &copp))
29117 continue;
29118 topo_id = adm_get_topology_for_port_copp_idx(port_id,
29119 idx);
29120 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
29121 continue;
29122 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
29123 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029124 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029125 switch (pp_id) {
29126 case ADM_PP_PARAM_MUTE_ID:
29127 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29128 mute = ucontrol->value.integer.value[1] ? true : false;
29129 msm_bedais_pp_params[index].mute_on = mute;
29130 set_bit(ADM_PP_PARAM_MUTE_BIT,
29131 &msm_bedais_pp_params[index].pp_params_config);
29132 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29133 adm_send_compressed_device_mute(port_id,
29134 idx, mute);
29135 break;
29136 case ADM_PP_PARAM_LATENCY_ID:
29137 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29138 msm_bedais_pp_params[index].latency =
29139 ucontrol->value.integer.value[1];
29140 set_bit(ADM_PP_PARAM_LATENCY_BIT,
29141 &msm_bedais_pp_params[index].pp_params_config);
29142 latency = msm_bedais_pp_params[index].latency =
29143 ucontrol->value.integer.value[1];
29144 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29145 adm_send_compressed_device_latency(port_id,
29146 idx, latency);
29147 break;
29148 default:
29149 pr_info("%s, device pp param %d not supported\n",
29150 __func__, pp_id);
29151 break;
29152 }
29153 }
29154 }
29155 return 0;
29156}
29157
29158static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29159 struct snd_ctl_elem_value *ucontrol)
29160{
29161 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
29162 return 0;
29163}
29164
29165static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
29166 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
29167 0, 3, msm_routing_get_device_pp_params_mixer,
29168 msm_routing_put_device_pp_params_mixer),
29169};
29170
29171static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
29172 struct snd_ctl_elem_value *ucontrol)
29173{
29174 ucontrol->value.integer.value[0] =
29175 core_get_license_status(ASM_MEDIA_FMT_APTX);
29176 pr_debug("%s: status %ld\n", __func__,
29177 ucontrol->value.integer.value[0]);
29178 return 0;
29179}
29180
29181static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
29182 struct snd_ctl_elem_value *ucontrol)
29183{
29184 int32_t status = 0;
29185
29186 status = core_set_license(ucontrol->value.integer.value[0],
29187 APTX_CLASSIC_DEC_LICENSE_ID);
29188 pr_debug("%s: status %d\n", __func__, status);
29189 return status;
29190}
29191
29192static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
29193 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
29194 0xFFFF, 0, msm_aptx_dec_license_control_get,
29195 msm_aptx_dec_license_control_put),
29196};
29197
Rohit kumar63ffaa72019-02-01 18:05:33 +053029198static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
29199 struct snd_ctl_elem_value *ucontrol)
29200{
29201 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
29202 uint32_t be_idx = ucontrol->value.integer.value[0];
29203 int i;
29204
Rohit kumar2b4cbd82019-04-30 13:31:25 +053029205 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29206 pr_err("%s: Invalid Backend index %d\n", __func__, be_idx);
29207 return -EINVAL;
29208 }
29209
Rohit kumar63ffaa72019-02-01 18:05:33 +053029210 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
29211 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
29212 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
29213 pr_err("%s: Invalid channel map %d\n",
29214 __func__, channel_map[i]);
29215 return -EINVAL;
29216 }
29217 }
29218 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
29219
29220 return 0;
29221}
29222
29223static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
29224 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
29225 MSM_BACKEND_DAI_MAX, 0,
29226 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
29227 msm_routing_put_port_chmap_mixer),
29228};
29229
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029230static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
29231 struct snd_ctl_elem_info *uinfo)
29232{
29233 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
29234 uinfo->count = sizeof(be_dai_name_table);
29235 return 0;
29236}
29237
29238static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
29239 unsigned int __user *bytes,
29240 unsigned int size)
29241{
29242 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029243 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029244
29245 if (size < sizeof(be_dai_name_table)) {
29246 pr_err("%s: invalid size %d requested, returning\n",
29247 __func__, size);
29248 ret = -EINVAL;
29249 goto done;
29250 }
29251
29252 /*
29253 * Fill be_dai_name_table from msm_bedais table to reduce code changes
29254 * needed when adding new backends
29255 */
29256 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29257 be_dai_name_table[i].be_id = i;
29258 strlcpy(be_dai_name_table[i].be_name,
29259 msm_bedais[i].name,
29260 LPASS_BE_NAME_MAX_LENGTH);
29261 }
29262
29263 ret = copy_to_user(bytes, &be_dai_name_table,
29264 sizeof(be_dai_name_table));
29265 if (ret) {
29266 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
29267 ret = -EFAULT;
29268 }
29269
29270done:
29271 return ret;
29272}
29273
29274static const struct snd_kcontrol_new
29275 msm_routing_be_dai_name_table_mixer_controls[] = {
29276 {
29277 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
29278 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
29279 .info = msm_routing_be_dai_name_table_info,
29280 .name = "Backend DAI Name Table",
29281 .tlv.c = snd_soc_bytes_tlv_callback,
29282 .private_value = (unsigned long) &(struct soc_bytes_ext) {
29283 .max = sizeof(be_dai_name_table),
29284 .get = msm_routing_be_dai_name_table_tlv_get,
29285 }
29286 },
29287};
29288
29289static int msm_routing_stereo_channel_reverse_control_get(
29290 struct snd_kcontrol *kcontrol,
29291 struct snd_ctl_elem_value *ucontrol)
29292{
29293 ucontrol->value.integer.value[0] = swap_ch;
29294 pr_debug("%s: Swap channel value: %ld\n", __func__,
29295 ucontrol->value.integer.value[0]);
29296 return 0;
29297}
29298
29299static int msm_routing_stereo_channel_reverse_control_put(
29300 struct snd_kcontrol *kcontrol,
29301 struct snd_ctl_elem_value *ucontrol)
29302{
29303 int i, idx, be_index, port_id;
29304 int ret = 0;
29305 unsigned long copp;
29306
29307 pr_debug("%s Swap channel value:%ld\n", __func__,
29308 ucontrol->value.integer.value[0]);
29309
29310 swap_ch = ucontrol->value.integer.value[0];
29311
29312 mutex_lock(&routing_lock);
29313 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
29314 port_id = msm_bedais[be_index].port_id;
29315 if (!msm_bedais[be_index].active)
29316 continue;
29317
29318 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
29319 MSM_FRONTEND_DAI_MM_SIZE) {
29320 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
29321 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29322 if (!test_bit(idx, &copp))
29323 continue;
29324
29325 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
29326 __func__, port_id, idx);
29327 ret = adm_swap_speaker_channels(
29328 port_id, idx,
29329 msm_bedais[be_index].sample_rate,
29330 swap_ch);
29331 if (ret) {
29332 pr_err("%s:Swap_channel failed, err=%d\n",
29333 __func__, ret);
29334 goto done;
29335 }
29336 }
29337 }
29338 }
29339done:
29340 mutex_unlock(&routing_lock);
29341 return ret;
29342}
29343
29344static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29345 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29346 1, 0, msm_routing_stereo_channel_reverse_control_get,
29347 msm_routing_stereo_channel_reverse_control_put),
29348};
29349
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029350static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29351 struct snd_ctl_elem_info *uinfo)
29352{
29353 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29354 uinfo->count = 1;
29355 return 0;
29356}
29357
29358static int msm_routing_instance_id_support_put(
29359 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29360{
29361 bool supported = ucontrol->value.integer.value[0] ? true : false;
29362
29363 q6common_update_instance_id_support(supported);
29364 return 0;
29365}
29366
29367static int msm_routing_instance_id_support_get(
29368 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29369{
29370 bool supported = false;
29371
29372 supported = q6common_is_instance_id_supported();
29373 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29374
29375 return 0;
29376}
29377
29378static const struct snd_kcontrol_new
29379 msm_routing_feature_support_mixer_controls[] = {
29380 {
29381 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29382 SNDRV_CTL_ELEM_ACCESS_WRITE,
29383 .info = msm_routing_instance_id_support_info,
29384 .name = "Instance ID Support",
29385 .put = msm_routing_instance_id_support_put,
29386 .get = msm_routing_instance_id_support_get,
29387 },
29388};
29389
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029390static const struct snd_pcm_ops msm_routing_pcm_ops = {
29391 .hw_params = msm_pcm_routing_hw_params,
29392 .close = msm_pcm_routing_close,
29393 .prepare = msm_pcm_routing_prepare,
29394};
29395
29396/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029397static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029398{
Meng Wangee084a02018-09-04 16:11:58 +080029399 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029400 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029401 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29402 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029403 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029404 ARRAY_SIZE(intercon));
29405
Meng Wangee084a02018-09-04 16:11:58 +080029406 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029407
Meng Wangee084a02018-09-04 16:11:58 +080029408 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029409 ARRAY_SIZE(lsm_controls));
29410
Meng Wangee084a02018-09-04 16:11:58 +080029411 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029412 ARRAY_SIZE(aanc_slim_0_rx_mux));
29413
Meng Wangee084a02018-09-04 16:11:58 +080029414 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029415 ARRAY_SIZE(aanc_noise_level));
29416
Meng Wangee084a02018-09-04 16:11:58 +080029417 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029418 ARRAY_SIZE(msm_voc_session_controls));
29419
Meng Wangee084a02018-09-04 16:11:58 +080029420 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029421 ARRAY_SIZE(app_type_cfg_controls));
29422
Meng Wangee084a02018-09-04 16:11:58 +080029423 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029424 ARRAY_SIZE(lsm_app_type_cfg_controls));
29425
Meng Wangee084a02018-09-04 16:11:58 +080029426 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029427 ARRAY_SIZE(module_cfg_controls));
29428
Meng Wangee084a02018-09-04 16:11:58 +080029429 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029430 stereo_to_custom_stereo_controls,
29431 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29432
Meng Wangee084a02018-09-04 16:11:58 +080029433 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029434 ARRAY_SIZE(ec_ref_param_controls));
29435
Meng Wangee084a02018-09-04 16:11:58 +080029436 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029437 ARRAY_SIZE(channel_mixer_controls));
29438
Meng Wangee084a02018-09-04 16:11:58 +080029439 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029440
Meng Wangee084a02018-09-04 16:11:58 +080029441 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029442
Meng Wangee084a02018-09-04 16:11:58 +080029443 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029444
Meng Wangee084a02018-09-04 16:11:58 +080029445 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029446 use_ds1_or_ds2_controls,
29447 ARRAY_SIZE(use_ds1_or_ds2_controls));
29448
Meng Wangee084a02018-09-04 16:11:58 +080029449 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029450 hifi_filter_controls,
29451 ARRAY_SIZE(hifi_filter_controls));
29452
29453 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029454 device_pp_params_mixer_controls,
29455 ARRAY_SIZE(device_pp_params_mixer_controls));
29456
Meng Wangee084a02018-09-04 16:11:58 +080029457 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029458 msm_routing_be_dai_name_table_mixer_controls,
29459 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29460
Meng Wangee084a02018-09-04 16:11:58 +080029461 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029462 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029463 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029464 ARRAY_SIZE(adm_channel_config_controls));
29465
Meng Wangee084a02018-09-04 16:11:58 +080029466 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029467 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029468 snd_soc_add_component_controls(component,
29469 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029470 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029471 snd_soc_add_component_controls(
29472 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029473 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029474 snd_soc_add_component_controls(component,
29475 port_multi_channel_map_mixer_controls,
29476 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029477
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029478 return 0;
29479}
29480
29481int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29482{
29483 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29484}
29485
29486void msm_routing_pcm_free(struct snd_pcm *pcm)
29487{
29488 msm_pcm_routing_hwdep_free(pcm);
29489}
29490
Meng Wangee084a02018-09-04 16:11:58 +080029491static struct snd_soc_component_driver msm_soc_routing_component = {
29492 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029493 .ops = &msm_routing_pcm_ops,
29494 .probe = msm_routing_probe,
29495 .pcm_new = msm_routing_pcm_new,
29496 .pcm_free = msm_routing_pcm_free,
29497};
29498
29499static int msm_routing_pcm_probe(struct platform_device *pdev)
29500{
29501
29502 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029503 return snd_soc_register_component(&pdev->dev,
29504 &msm_soc_routing_component,
29505 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029506}
29507
29508static int msm_routing_pcm_remove(struct platform_device *pdev)
29509{
Meng Wangee084a02018-09-04 16:11:58 +080029510 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029511 return 0;
29512}
29513
29514static const struct of_device_id msm_pcm_routing_dt_match[] = {
29515 {.compatible = "qcom,msm-pcm-routing"},
29516 {}
29517};
29518MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29519
29520static struct platform_driver msm_routing_pcm_driver = {
29521 .driver = {
29522 .name = "msm-pcm-routing",
29523 .owner = THIS_MODULE,
29524 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029525 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029526 },
29527 .probe = msm_routing_pcm_probe,
29528 .remove = msm_routing_pcm_remove,
29529};
29530
29531int msm_routing_check_backend_enabled(int fedai_id)
29532{
29533 int i;
29534
29535 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29536 /* bad ID assigned in machine driver */
29537 pr_err("%s: bad MM ID\n", __func__);
29538 return 0;
29539 }
29540 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29541 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29542 return msm_bedais[i].active;
29543 }
29544 return 0;
29545}
29546
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029547static int get_cal_type_index(int32_t cal_type)
29548{
29549 int ret = -EINVAL;
29550
29551 switch (cal_type) {
29552 case ADM_TOPOLOGY_CAL_TYPE:
29553 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29554 break;
29555 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29556 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29557 break;
29558 default:
29559 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29560 }
29561 return ret;
29562}
29563
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029564static int msm_routing_set_cal(int32_t cal_type,
29565 size_t data_size, void *data)
29566{
29567 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029568 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029569 pr_debug("%s\n", __func__);
29570
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029571 cal_index = get_cal_type_index(cal_type);
29572 if (cal_index < 0) {
29573 pr_err("%s: Could not get cal index %d\n",
29574 __func__, cal_index);
29575 ret = -EINVAL;
29576 goto done;
29577 }
29578
29579 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029580 if (ret < 0) {
29581 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29582 __func__, ret, cal_type);
29583 ret = -EINVAL;
29584 goto done;
29585 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029586 /* Pre-load if it is ADM topology */
29587 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29588 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29589 msm_routing_load_topology(data_size, data);
29590 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029591done:
29592 return ret;
29593}
29594
29595static void msm_routing_delete_cal_data(void)
29596{
29597 pr_debug("%s\n", __func__);
29598
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029599 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029600}
29601
29602static int msm_routing_init_cal_data(void)
29603{
29604 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029605 struct cal_type_info cal_type_info[] = {
29606 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029607 {NULL, NULL, NULL,
29608 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029609 {NULL, NULL, cal_utils_match_buf_num} },
29610
29611 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29612 {NULL, NULL, NULL,
29613 msm_routing_set_cal, NULL, NULL} },
29614 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029615 };
29616 pr_debug("%s\n", __func__);
29617
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029618 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29619 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029620 if (ret < 0) {
29621 pr_err("%s: could not create cal type!\n",
29622 __func__);
29623 ret = -EINVAL;
29624 goto err;
29625 }
29626
29627 return ret;
29628err:
29629 msm_routing_delete_cal_data();
29630 return ret;
29631}
29632
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029633int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029634{
29635 mutex_init(&routing_lock);
29636 if (msm_routing_init_cal_data())
29637 pr_err("%s: could not init cal data!\n", __func__);
29638
29639 afe_set_routing_callback(
29640 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29641
29642 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29643 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29644
29645 return platform_driver_register(&msm_routing_pcm_driver);
29646}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029647
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029648void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029649{
29650 msm_routing_delete_cal_data();
29651 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29652 mutex_destroy(&routing_lock);
29653 platform_driver_unregister(&msm_routing_pcm_driver);
29654}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029655
29656MODULE_DESCRIPTION("MSM routing platform driver");
29657MODULE_LICENSE("GPL v2");