blob: 4ec63e38adb61ef295534fb40a7579592db43cd5 [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Josh Kirschea69fed2018-12-11 16:15:08 -08002/* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4
5#include <linux/init.h>
6#include <linux/err.h>
7#include <linux/module.h>
8#include <linux/moduleparam.h>
9#include <linux/platform_device.h>
10#include <linux/bitops.h>
11#include <linux/mutex.h>
12#include <linux/of_device.h>
13#include <linux/slab.h>
14#include <sound/core.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <sound/pcm.h>
18#include <sound/initval.h>
19#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020#include <sound/tlv.h>
21#include <sound/asound.h>
22#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053024#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053025#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053026#include <dsp/q6voice.h>
27#include <dsp/q6adm-v2.h>
28#include <dsp/q6asm-v2.h>
29#include <dsp/q6afe-v2.h>
30#include <dsp/q6lsm.h>
31#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080032#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053033#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053034
35#include "msm-pcm-routing-v2.h"
36#include "msm-pcm-routing-devdep.h"
37#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053038#include "msm-dolby-dap-config.h"
39#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053040
Meng Wangee084a02018-09-04 16:11:58 +080041#define DRV_NAME "msm-pcm-routing-v2"
42
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053043#ifndef CONFIG_DOLBY_DAP
44#undef DOLBY_ADM_COPP_TOPOLOGY_ID
45#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
46#endif
47
48#ifndef CONFIG_DOLBY_DS2
49#undef DS2_ADM_COPP_TOPOLOGY_ID
50#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
51#endif
52
53static struct mutex routing_lock;
54
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053055static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053056
57static int fm_switch_enable;
58static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080059static int a2dp_switch_enable;
Zhou Songcaa541d2019-02-19 18:37:47 +080060static int sco_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053061static int int0_mi2s_switch_enable;
62static int int4_mi2s_switch_enable;
63static int pri_mi2s_switch_enable;
64static int sec_mi2s_switch_enable;
65static int tert_mi2s_switch_enable;
66static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053067static int quin_mi2s_switch_enable;
Karthikeyan Manic3700752019-03-11 18:33:53 -070068static int sen_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053069static int fm_pcmrx_switch_enable;
70static int usb_switch_enable;
71static int lsm_port_index;
72static int slim0_rx_aanc_fb_port;
73static int msm_route_ec_ref_rx;
74static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053075static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053076static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
77static int msm_ec_ref_sampling_rate = 48000;
78static uint32_t voc_session_id = ALL_SESSION_VSID;
79static int msm_route_ext_ec_ref;
80static bool is_custom_stereo_on;
81static bool is_ds2_on;
82static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053083static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080084static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053085static int msm_ec_ref_port_id;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +053086static int afe_loopback_tx_port_index;
87static int afe_loopback_tx_port_id = -1;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053088
89#define WEIGHT_0_DB 0x4000
90/* all the FEs which can support channel mixer */
91static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053092
93/* all the FES which can support channel mixer for bidirection */
94static struct msm_pcm_channel_mixer
95 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
96
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053097/* input BE for each FE */
98static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
99
100enum {
101 MADNONE,
102 MADAUDIO,
103 MADBEACON,
104 MADULTRASOUND,
105 MADSWAUDIO,
106};
107
108#define ADM_LSM_PORT_INDEX 9
109
110#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
111#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
112#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
113#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
114#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
115#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
116#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
117#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
118#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
119#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530120#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
121#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800122#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530123#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530124#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530125
126#define LSM_FUNCTION_TEXT "LSM Function"
127static const char * const lsm_port_text[] = {
128 "None",
129 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
130 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
131 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530132 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800133 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530134};
135
136struct msm_pcm_route_bdai_pp_params {
137 u16 port_id; /* AFE port ID */
138 unsigned long pp_params_config;
139 bool mute_on;
140 int latency;
141};
142
143static struct msm_pcm_route_bdai_pp_params
144 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
145 {HDMI_RX, 0, 0, 0},
146 {DISPLAY_PORT_RX, 0, 0, 0},
147};
148
149/*
150 * The be_dai_name_table is passed to HAL so that it can specify the
151 * BE ID for the BE it wants to enable based on the name. Thus there
152 * is a matching table and structure in HAL that need to be updated
153 * if any changes to these are made.
154 */
155struct msm_pcm_route_bdai_name {
156 unsigned int be_id;
157 char be_name[LPASS_BE_NAME_MAX_LENGTH];
158};
159static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
160
161static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
162 int fe_id);
163
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700164static void msm_routing_load_topology(size_t data_size, void *data);
165static void msm_routing_unload_topology(uint32_t topology_id);
166
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530167static int msm_routing_get_bit_width(unsigned int format)
168{
169 int bit_width;
170
171 switch (format) {
172 case SNDRV_PCM_FORMAT_S32_LE:
173 bit_width = 32;
174 break;
175 case SNDRV_PCM_FORMAT_S24_LE:
176 case SNDRV_PCM_FORMAT_S24_3LE:
177 bit_width = 24;
178 break;
179 case SNDRV_PCM_FORMAT_S16_LE:
180 default:
181 bit_width = 16;
182 }
183 return bit_width;
184}
185
186static bool msm_is_resample_needed(int input_sr, int output_sr)
187{
188 bool rc = false;
189
190 if (input_sr != output_sr)
191 rc = true;
192
193 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
194 (rc ? "oh yes" : "not really"),
195 input_sr, output_sr);
196
197 return rc;
198}
199
200static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
201 int channels)
202{
203 int rc = 0;
204
205 switch (topology) {
206 case SRS_TRUMEDIA_TOPOLOGY_ID:
207 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
208 msm_dts_srs_tm_init(port_id, copp_idx);
209 break;
210 case DS2_ADM_COPP_TOPOLOGY_ID:
211 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
212 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
217 __func__, topology, port_id,
218 is_custom_stereo_on, rc);
219 break;
220 case DOLBY_ADM_COPP_TOPOLOGY_ID:
221 if (is_ds2_on) {
222 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
223 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
224 is_custom_stereo_on);
225 if (rc < 0)
226 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
227 __func__, topology, port_id, rc);
228 } else {
229 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
230 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
231 is_custom_stereo_on);
232 if (rc < 0)
233 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
234 __func__, topology, port_id, rc);
235 }
236 break;
237 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
238 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
239 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
240 if (rc < 0)
241 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
242 __func__, topology, port_id, copp_idx, rc);
243 break;
244 default:
245 /* custom topology specific feature param handlers */
246 break;
247 }
248}
249
250static void msm_pcm_routing_deinit_pp(int port_id, int topology)
251{
252 switch (topology) {
253 case SRS_TRUMEDIA_TOPOLOGY_ID:
254 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
255 msm_dts_srs_tm_deinit(port_id);
256 break;
257 case DS2_ADM_COPP_TOPOLOGY_ID:
258 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
259 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
260 msm_ds2_dap_deinit(port_id);
261 break;
262 case DOLBY_ADM_COPP_TOPOLOGY_ID:
263 if (is_ds2_on) {
264 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
265 msm_ds2_dap_deinit(port_id);
266 } else {
267 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
268 msm_dolby_dap_deinit(port_id);
269 }
270 break;
271 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
272 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
273 msm_qti_pp_asphere_deinit(port_id);
274 break;
275 default:
276 /* custom topology specific feature deinit handlers */
277 break;
278 }
279}
280
281static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
282 int path_type, int perf_mode)
283{
284 int itr = 0, rc = 0;
285
286 if ((path_type == ADM_PATH_PLAYBACK) &&
287 (perf_mode == LEGACY_PCM_MODE) &&
288 is_custom_stereo_on) {
289 for (itr = 0; itr < payload.num_copps; itr++) {
290 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
291 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
292 continue;
293 }
294
295 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
296 payload.port_id[itr],
297 payload.copp_idx[itr],
298 payload.session_id,
299 Q14_GAIN_ZERO_POINT_FIVE,
300 Q14_GAIN_ZERO_POINT_FIVE,
301 Q14_GAIN_ZERO_POINT_FIVE,
302 Q14_GAIN_ZERO_POINT_FIVE);
303 if (rc < 0)
304 pr_err("%s: err setting custom stereo\n",
305 __func__);
306 }
307 }
308}
309
310#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
311struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530312 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
313 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
314 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
315 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
316 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
317 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
318 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
319 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
320 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
321 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530328 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530329 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530330 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530331 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530332 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530333 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530334 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530335 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530336 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530337 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
338 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
339 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
340 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
341 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
342 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
343 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
344 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
345 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
346 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
347 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
348 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
349 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
350 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
351 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
352 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
353 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
354 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
355 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
356 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
357 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
358 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
359 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200382 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530510 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530512 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530514 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530516 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530518 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530542 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530544 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530546 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530548 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530550 LPASS_BE_QUIN_TDM_TX_7},
Karthikeyan Manic3700752019-03-11 18:33:53 -0700551 { AFE_PORT_ID_SENARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
552 LPASS_BE_SEN_TDM_RX_0},
553 { AFE_PORT_ID_SENARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
554 LPASS_BE_SEN_TDM_TX_0},
555 { AFE_PORT_ID_SENARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
556 LPASS_BE_SEN_TDM_RX_1},
557 { AFE_PORT_ID_SENARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
558 LPASS_BE_SEN_TDM_TX_1},
559 { AFE_PORT_ID_SENARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
560 LPASS_BE_SEN_TDM_RX_2},
561 { AFE_PORT_ID_SENARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
562 LPASS_BE_SEN_TDM_TX_2},
563 { AFE_PORT_ID_SENARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
564 LPASS_BE_SEN_TDM_RX_3},
565 { AFE_PORT_ID_SENARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
566 LPASS_BE_SEN_TDM_TX_3},
567 { AFE_PORT_ID_SENARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
568 LPASS_BE_SEN_TDM_RX_4},
569 { AFE_PORT_ID_SENARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
570 LPASS_BE_SEN_TDM_TX_4},
571 { AFE_PORT_ID_SENARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
572 LPASS_BE_SEN_TDM_RX_5},
573 { AFE_PORT_ID_SENARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
574 LPASS_BE_SEN_TDM_TX_5},
575 { AFE_PORT_ID_SENARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
576 LPASS_BE_SEN_TDM_RX_6},
577 { AFE_PORT_ID_SENARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
578 LPASS_BE_SEN_TDM_TX_6},
579 { AFE_PORT_ID_SENARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
580 LPASS_BE_SEN_TDM_RX_7},
581 { AFE_PORT_ID_SENARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
582 LPASS_BE_SEN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530591 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700592 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530593 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530594 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530596 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530598 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530600 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530602 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530604 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530606 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530608 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530610 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530612 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530614 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530616 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530618 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530620 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530622 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530624 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530626 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530628 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530630 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530632 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200633 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
634 LPASS_BE_SEN_AUXPCM_RX},
635 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
636 LPASS_BE_SEN_AUXPCM_TX},
637 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
638 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530640 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530642 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530643 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530644 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530645 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530646 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530647 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530648 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530649 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530650 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530651 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530652 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800653 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
654 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530655 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530656 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530657 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530658 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530659 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530660 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530662 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530663 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530664 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530666 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530668 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530669 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530670 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530672 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530674 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530675 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530676 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530678 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530680 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530681 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530682 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200684 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200686 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530687 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200688 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530689 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
690 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530691 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530692};
693
694/* Track ASM playback & capture sessions of DAI
695 * Track LSM listen sessions
696 */
697static struct msm_pcm_routing_fdai_data
698 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
699 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530714 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530723 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530726 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700759 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530762 /* MULTIMEDIA26 */
763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
765 /* MULTIMEDIA27 */
766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530768 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530771 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530784 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
785 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530787 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
788 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530789 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530790 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
791 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530792 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530793 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
794 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530795 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530796 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
797 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530798 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530799 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
800 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530801 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530802 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
803 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530805 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
806 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530807 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530808 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
809 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530810 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530811 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
812 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530813 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530814 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
815 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530816 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530817 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
818 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530819 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530820 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
821 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530822 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530823 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
824 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530825 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530826 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
827 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530828};
829
830static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
831 [MSM_BACKEND_DAI_MAX];
832static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
833static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
834static struct msm_pcm_stream_app_type_cfg
835 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
836
837static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
838
Florian Pfister522073c2018-09-26 15:39:15 +0200839/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530840void msm_pcm_routing_get_bedai_info(int be_idx,
841 struct msm_pcm_routing_bdai_data *be_dai)
842{
843 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
844 memcpy(be_dai, &msm_bedais[be_idx],
845 sizeof(struct msm_pcm_routing_bdai_data));
846}
847
Florian Pfister522073c2018-09-26 15:39:15 +0200848/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530849void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
850 struct msm_pcm_routing_fdai_data *fe_dai)
851{
852 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
853 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
854 sizeof(struct msm_pcm_routing_fdai_data));
855}
856
857void msm_pcm_routing_acquire_lock(void)
858{
859 mutex_lock(&routing_lock);
860}
861
862void msm_pcm_routing_release_lock(void)
863{
864 mutex_unlock(&routing_lock);
865}
866
867static int msm_pcm_routing_get_app_type_idx(int app_type)
868{
869 int idx;
870
871 pr_debug("%s: app_type: %d\n", __func__, app_type);
872 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
873 if (app_type_cfg[idx].app_type == app_type)
874 return idx;
875 }
876 pr_info("%s: App type not available, fallback to default\n", __func__);
877 return 0;
878}
879
880static int msm_pcm_routing_get_lsm_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 (lsm_app_type_cfg[idx].app_type == app_type)
887 return idx;
888 }
889 pr_debug("%s: App type not available, fallback to default\n", __func__);
890 return 0;
891}
892
Surendar Karkae7507512018-07-20 15:46:54 +0530893static int get_port_id(int port_id)
894{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530895 int ret = port_id;
896
897 if (port_id == AFE_LOOPBACK_TX) {
898 /*
899 * Return afe_loopback_tx_port_id if set. Else return
900 * msm_ec_ref_port_id to maintain backward compatibility.
901 */
902 if (afe_loopback_tx_port_id != -1)
903 ret = afe_loopback_tx_port_id;
904 else
905 ret = msm_ec_ref_port_id;
906 }
907
908 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530909}
910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530911static bool is_mm_lsm_fe_id(int fe_id)
912{
913 bool rc = true;
914
915 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
916 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
917 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
918 rc = false;
919 }
920 return rc;
921}
922
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700923/*
924 * msm_pcm_routing_send_chmix_cfg:
925 * send the channel mixer command to mix the input channels
926 * into output channels.
927 *
928 * @fe_id: front end id
929 * @ip_channel_cnt: input channel count
930 * @op_channel_cnt: output channel count
931 * @ch_wght_coeff: channel weight co-efficients for channel mixing
932 * @session_type: indicates session is of type TX or RX
933 * @stream_type: indicates either Audio or Listen stream type
934 */
935int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
936 int op_channel_cnt, int *ch_wght_coeff,
937 int session_type, int stream_type)
938{
939
940 int rc = 0, idx = 0;
941 int be_index = 0, port_id;
942 unsigned int session_id = 0;
943
944 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
945 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
946 stream_type);
947 if (!is_mm_lsm_fe_id(fe_id)) {
948 /* bad ID assigned in machine driver */
949 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
950 return -EINVAL;
951 }
952
953 if (ch_wght_coeff == NULL) {
954 pr_err("%s: Null channel weightage coefficients passed\n",
955 __func__);
956 return -EINVAL;
957 }
958
959 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
960 port_id = msm_bedais[be_index].port_id;
961 if (!msm_bedais[be_index].active ||
962 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
963 continue;
964
965 session_id = fe_dai_map[fe_id][session_type].strm_id;
966
967 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
968 unsigned long copp =
969 session_copp_map[fe_id][session_type][be_index];
970 if (!test_bit(idx, &copp))
971 continue;
972 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
973 session_id, ip_channel_cnt,
974 op_channel_cnt, ch_wght_coeff,
975 session_type, stream_type);
976 if (rc < 0)
977 pr_err("%s: err setting channel mix config\n",
978 __func__);
979 }
980 }
981
982 return 0;
983}
984EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
985
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530986/**
987 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
988 * setting before use case start.
989 *
990 * @fe_id: frontend idx
991 * @type: stream direction type
992 * @params: parameters of channel mixer setting
993 *
994 * Return 0 for success
995 */
996int msm_pcm_routing_set_channel_mixer_cfg(
997 int fe_id, int type,
998 struct msm_pcm_channel_mixer *params)
999{
1000 int i, j = 0;
1001
1002 channel_mixer_v2[fe_id][type].enable = params->enable;
1003 channel_mixer_v2[fe_id][type].rule = params->rule;
1004 channel_mixer_v2[fe_id][type].input_channel =
1005 params->input_channel;
1006 channel_mixer_v2[fe_id][type].output_channel =
1007 params->output_channel;
1008 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1009
1010 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1011 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1012 params->in_ch_map[i];
1013 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1014 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1015 params->out_ch_map[i];
1016
1017 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1018 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1019 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1020 params->channel_weight[i][j];
1021
1022 channel_mixer_v2[fe_id][type].override_in_ch_map =
1023 params->override_in_ch_map;
1024 channel_mixer_v2[fe_id][type].override_out_ch_map =
1025 params->override_out_ch_map;
1026
1027 return 0;
1028}
1029EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301031int msm_pcm_routing_reg_stream_app_type_cfg(
1032 int fedai_id, int session_type, int be_id,
1033 struct msm_pcm_stream_app_type_cfg *cfg_data)
1034{
1035 int ret = 0;
1036
1037 if (cfg_data == NULL) {
1038 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1039 ret = -EINVAL;
1040 goto done;
1041 }
1042
1043 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1044 __func__, fedai_id, session_type, be_id,
1045 cfg_data->app_type, cfg_data->acdb_dev_id,
1046 cfg_data->sample_rate);
1047
1048 if (!is_mm_lsm_fe_id(fedai_id)) {
1049 pr_err("%s: Invalid machine driver ID %d\n",
1050 __func__, fedai_id);
1051 ret = -EINVAL;
1052 goto done;
1053 }
1054 if (session_type != SESSION_TYPE_RX &&
1055 session_type != SESSION_TYPE_TX) {
1056 pr_err("%s: Invalid session type %d\n",
1057 __func__, session_type);
1058 ret = -EINVAL;
1059 goto done;
1060 }
1061 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1062 pr_err("%s: Received out of bounds be_id %d\n",
1063 __func__, be_id);
1064 ret = -EINVAL;
1065 goto done;
1066 }
1067
1068 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1069
1070 /*
1071 * Store the BE ID of the configuration information set as the latest so
1072 * the get mixer control knows what to return.
1073 */
1074 last_be_id_configured[fedai_id][session_type] = be_id;
1075
1076done:
1077 return ret;
1078}
1079EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1080
1081/**
1082 * msm_pcm_routing_get_stream_app_type_cfg
1083 *
1084 * Receives fedai_id, session_type, be_id, and populates app_type,
1085 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1086 * -EINVAL and does not alter passed values.
1087 *
1088 * fedai_id - Passed value, front end ID for which app type config is wanted
1089 * session_type - Passed value, session type for which app type config
1090 * is wanted
1091 * be_id - Returned value, back end device id the app type config data is for
1092 * cfg_data - Returned value, configuration data used by app type config
1093 */
1094int msm_pcm_routing_get_stream_app_type_cfg(
1095 int fedai_id, int session_type, int *bedai_id,
1096 struct msm_pcm_stream_app_type_cfg *cfg_data)
1097{
1098 int be_id;
1099 int ret = 0;
1100
1101 if (bedai_id == NULL) {
1102 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1103 ret = -EINVAL;
1104 goto done;
1105 } else if (cfg_data == NULL) {
1106 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1107 ret = -EINVAL;
1108 goto done;
1109 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1110 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1111 ret = -EINVAL;
1112 goto done;
1113 } else if (session_type != SESSION_TYPE_RX &&
1114 session_type != SESSION_TYPE_TX) {
1115 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1116 ret = -EINVAL;
1117 goto done;
1118 }
1119
1120 be_id = last_be_id_configured[fedai_id][session_type];
1121 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1122 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1123 ret = -EINVAL;
1124 goto done;
1125 }
1126
1127 *bedai_id = be_id;
1128 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1129 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1130 __func__, fedai_id, session_type, *bedai_id,
1131 cfg_data->app_type, cfg_data->acdb_dev_id,
1132 cfg_data->sample_rate);
1133done:
1134 return ret;
1135}
1136EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1137
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301138static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1139 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301140{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301141 struct list_head *ptr, *next;
1142 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301143 pr_debug("%s\n", __func__);
1144
1145 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301146 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301147
1148 cal_block = list_entry(ptr,
1149 struct cal_block_data, list);
1150
Vikram Panduranga770b8382017-09-27 12:17:36 -07001151 if (cal_utils_is_cal_stale(cal_block))
1152 continue;
1153
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301154 if (((struct audio_cal_info_adm_top *)cal_block
1155 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301156 return cal_block;
1157 }
1158 }
1159 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1160 return NULL;
1161}
1162
1163static struct cal_block_data *msm_routing_find_topology(int path,
1164 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301165 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001166 int cal_index,
1167 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301168{
1169 struct list_head *ptr, *next;
1170 struct cal_block_data *cal_block = NULL;
1171 struct audio_cal_info_adm_top *cal_info;
1172
1173 pr_debug("%s\n", __func__);
1174
1175 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301176 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301177
1178 cal_block = list_entry(ptr,
1179 struct cal_block_data, list);
1180
Vikram Panduranga770b8382017-09-27 12:17:36 -07001181 if (cal_utils_is_cal_stale(cal_block))
1182 continue;
1183
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301184 cal_info = (struct audio_cal_info_adm_top *)
1185 cal_block->cal_info;
1186 if ((cal_info->path == path) &&
1187 (cal_info->app_type == app_type) &&
1188 (cal_info->acdb_id == acdb_id)) {
1189 return cal_block;
1190 }
1191 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001192 pr_debug("%s: Can't find topology for path %d, app %d, "
1193 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1194 exact ? "fail" : "defaulting to search by path");
1195 return exact ? NULL : msm_routing_find_topology_by_path(path,
1196 cal_index);
1197}
1198
1199static int msm_routing_find_topology_on_index(int session_type, int app_type,
1200 int acdb_dev_id, int idx,
1201 bool exact)
1202{
1203 int topology = -EINVAL;
1204 struct cal_block_data *cal_block = NULL;
1205
1206 mutex_lock(&cal_data[idx]->lock);
1207 cal_block = msm_routing_find_topology(session_type, app_type,
1208 acdb_dev_id, idx, exact);
1209 if (cal_block != NULL) {
1210 topology = ((struct audio_cal_info_adm_top *)
1211 cal_block->cal_info)->topology;
1212 }
1213 mutex_unlock(&cal_data[idx]->lock);
1214 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301215}
1216
Vikram Panduranga770b8382017-09-27 12:17:36 -07001217/*
1218 * Retrieving cal_block will mark cal_block as stale.
1219 * Hence it cannot be reused or resent unless the flag
1220 * is reset.
1221 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301222static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1223 int be_id)
1224{
1225 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301226 int app_type = 0, acdb_dev_id = 0;
1227
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301228 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1229 __func__, fedai_id, session_type, be_id);
1230
1231 if (cal_data == NULL)
1232 goto done;
1233
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301234 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1235 acdb_dev_id =
1236 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1237
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001238 pr_debug("%s: Check for exact LSM topology\n", __func__);
1239 topology = msm_routing_find_topology_on_index(session_type,
1240 app_type,
1241 acdb_dev_id,
1242 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1243 true /*exact*/);
1244 if (topology < 0) {
1245 pr_debug("%s: Check for compatible topology\n", __func__);
1246 topology = msm_routing_find_topology_on_index(session_type,
1247 app_type,
1248 acdb_dev_id,
1249 ADM_TOPOLOGY_CAL_TYPE_IDX,
1250 false /*exact*/);
1251 if (topology < 0)
1252 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301253 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301254done:
1255 pr_debug("%s: Using topology %d\n", __func__, topology);
1256 return topology;
1257}
1258
1259static uint8_t is_be_dai_extproc(int be_dai)
1260{
1261 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1262 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1263 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1264 return 1;
1265 else
1266 return 0;
1267}
1268
1269static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1270 int path_type, int perf_mode,
1271 uint32_t passthr_mode)
1272{
1273 int i, port_type, j, num_copps = 0;
1274 struct route_payload payload;
1275
1276 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1277 path_type == ADM_PATH_COMPRESSED_RX) ?
1278 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1279
1280 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1281 if (!is_be_dai_extproc(i) &&
1282 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1283 (msm_bedais[i].active) &&
1284 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301285 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301286 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1287 unsigned long copp =
1288 session_copp_map[fedai_id][sess_type][i];
1289 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301290 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301291 payload.copp_idx[num_copps] = j;
1292 payload.app_type[num_copps] =
1293 fe_dai_app_type_cfg
1294 [fedai_id][sess_type][i]
1295 .app_type;
1296 payload.acdb_dev_id[num_copps] =
1297 fe_dai_app_type_cfg
1298 [fedai_id][sess_type][i]
1299 .acdb_dev_id;
1300 payload.sample_rate[num_copps] =
1301 fe_dai_app_type_cfg
1302 [fedai_id][sess_type][i]
1303 .sample_rate;
1304 num_copps++;
1305 }
1306 }
1307 }
1308 }
1309
1310 if (num_copps) {
1311 payload.num_copps = num_copps;
1312 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1313 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1314 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1315 }
1316}
1317
1318void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1319 int stream_type)
1320{
1321 int i, session_type, path_type, port_type;
1322 u32 mode = 0;
1323
1324 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1325 /* bad ID assigned in machine driver */
1326 pr_err("%s: bad MM ID\n", __func__);
1327 return;
1328 }
1329
1330 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1331 session_type = SESSION_TYPE_RX;
1332 path_type = ADM_PATH_PLAYBACK;
1333 port_type = MSM_AFE_PORT_TYPE_RX;
1334 } else {
1335 session_type = SESSION_TYPE_TX;
1336 path_type = ADM_PATH_LIVE_REC;
1337 port_type = MSM_AFE_PORT_TYPE_TX;
1338 }
1339
1340 mutex_lock(&routing_lock);
1341
1342 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1343 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1344 if (!is_be_dai_extproc(i) &&
1345 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1346 (msm_bedais[i].active) &&
1347 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1348 mode = afe_get_port_type(msm_bedais[i].port_id);
1349 adm_connect_afe_port(mode, dspst_id,
1350 msm_bedais[i].port_id);
1351 break;
1352 }
1353 }
1354 mutex_unlock(&routing_lock);
1355}
1356
1357static bool route_check_fe_id_adm_support(int fe_id)
1358{
1359 bool rc = true;
1360
1361 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1362 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1363 /* fe id is listen while port is set to afe */
1364 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1365 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1366 __func__, fe_id, lsm_port_index);
1367 rc = false;
1368 }
1369 }
1370
1371 return rc;
1372}
1373
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001374/*
1375 * msm_pcm_routing_get_pp_ch_cnt:
1376 * Read the processed channel count
1377 *
1378 * @fe_id: Front end ID
1379 * @session_type: Inidicates RX or TX session type
1380 */
1381int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1382{
1383 struct msm_pcm_stream_app_type_cfg cfg_data;
1384 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301385 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001386
1387 memset(&cfg_data, 0, sizeof(cfg_data));
1388
1389 if (!is_mm_lsm_fe_id(fe_id)) {
1390 pr_err("%s: bad MM ID\n", __func__);
1391 return -EINVAL;
1392 }
1393
1394 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1395 &be_id, &cfg_data);
1396 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301397 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001398 return ret;
1399 }
1400
1401 app_type = cfg_data.app_type;
1402 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1403 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1404}
1405EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301407int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1408 int dspst_id, int stream_type,
1409 uint32_t passthr_mode)
1410{
1411 int i, j, session_type, path_type, port_type, topology;
1412 int num_copps = 0;
1413 struct route_payload payload;
1414 u32 channels, sample_rate;
1415 u16 bit_width = 16;
1416 bool is_lsm;
1417
1418 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1419 __func__, fe_id, perf_mode, dspst_id,
1420 stream_type, passthr_mode);
1421 if (!is_mm_lsm_fe_id(fe_id)) {
1422 /* bad ID assigned in machine driver */
1423 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1424 return -EINVAL;
1425 }
1426
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301427 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1428 session_type = SESSION_TYPE_RX;
1429 if (passthr_mode != LEGACY_PCM)
1430 path_type = ADM_PATH_COMPRESSED_RX;
1431 else
1432 path_type = ADM_PATH_PLAYBACK;
1433 port_type = MSM_AFE_PORT_TYPE_RX;
1434 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1435 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301436 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 path_type = ADM_PATH_COMPRESSED_TX;
1438 else
1439 path_type = ADM_PATH_LIVE_REC;
1440 port_type = MSM_AFE_PORT_TYPE_TX;
1441 } else {
1442 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1443 return -EINVAL;
1444 }
1445
1446 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1447 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1448 mutex_lock(&routing_lock);
1449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301450 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301451 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1452 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1453 if (!route_check_fe_id_adm_support(fe_id)) {
1454 /* ignore adm open if not supported for fe_id */
1455 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1456 mutex_unlock(&routing_lock);
1457 return 0;
1458 }
1459
1460 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301461 /* re-enable EQ if active */
1462 msm_qti_pp_send_eq_values(fe_id);
1463 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301464 if (!is_be_dai_extproc(i) &&
1465 (afe_get_port_type(msm_bedais[i].port_id) ==
1466 port_type) &&
1467 (msm_bedais[i].active) &&
1468 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1469 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301470 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301471
1472 /*
1473 * check if ADM needs to be configured with different
1474 * channel mapping than backend
1475 */
1476 if (!msm_bedais[i].adm_override_ch)
1477 channels = msm_bedais[i].channel;
1478 else
1479 channels = msm_bedais[i].adm_override_ch;
1480
1481 bit_width = msm_routing_get_bit_width(
1482 msm_bedais[i].format);
1483 app_type =
1484 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1485 if (app_type && is_lsm) {
1486 app_type_idx =
1487 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1488 sample_rate =
1489 fe_dai_app_type_cfg[fe_id][session_type][i]
1490 .sample_rate;
1491 bit_width =
1492 lsm_app_type_cfg[app_type_idx].bit_width;
1493 } else if (app_type) {
1494 app_type_idx =
1495 msm_pcm_routing_get_app_type_idx(
1496 app_type);
1497 sample_rate =
1498 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1499 bit_width =
1500 app_type_cfg[app_type_idx].bit_width;
1501 } else {
1502 sample_rate = msm_bedais[i].sample_rate;
1503 }
1504 acdb_dev_id =
1505 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1506 topology = msm_routing_get_adm_topology(fe_id,
1507 session_type,
1508 i);
1509 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1510 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001511 COMPRESSED_PASSTHROUGH_GEN)
1512 || (passthr_mode ==
1513 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301514 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1515 pr_debug("%s: Before adm open topology %d\n", __func__,
1516 topology);
1517
1518 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301519 adm_open(port_id, path_type, sample_rate,
1520 channels, topology, perf_mode,
1521 bit_width, app_type, acdb_dev_id,
1522 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301523 if ((copp_idx < 0) ||
1524 (copp_idx >= MAX_COPPS_PER_PORT)) {
1525 pr_err("%s:adm open failed coppid:%d\n",
1526 __func__, copp_idx);
1527 mutex_unlock(&routing_lock);
1528 return -EINVAL;
1529 }
1530 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1531 __func__, fe_id, session_type, i);
1532 set_bit(copp_idx,
1533 &session_copp_map[fe_id][session_type][i]);
1534
1535 if (msm_is_resample_needed(
1536 sample_rate,
1537 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301538 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301539 msm_bedais[i].sample_rate);
1540
1541 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1542 unsigned long copp =
1543 session_copp_map[fe_id][session_type][i];
1544 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301545 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301546 payload.copp_idx[num_copps] = j;
1547 payload.app_type[num_copps] =
1548 fe_dai_app_type_cfg
1549 [fe_id][session_type][i]
1550 .app_type;
1551 payload.acdb_dev_id[num_copps] =
1552 fe_dai_app_type_cfg
1553 [fe_id][session_type][i]
1554 .acdb_dev_id;
1555 payload.sample_rate[num_copps] =
1556 fe_dai_app_type_cfg
1557 [fe_id][session_type][i]
1558 .sample_rate;
1559 num_copps++;
1560 }
1561 }
1562 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001563 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301564 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301565 msm_routing_send_device_pp_params(port_id,
1566 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301567 }
1568 }
1569 if (num_copps) {
1570 payload.num_copps = num_copps;
1571 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1572 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1573 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1574 }
1575 mutex_unlock(&routing_lock);
1576 return 0;
1577}
1578
1579static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1580{
1581 u32 session_id;
1582
1583 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301584 case MSM_FRONTEND_DAI_QCHAT:
1585 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1586 break;
1587 case MSM_FRONTEND_DAI_VOIP:
1588 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1589 break;
1590 case MSM_FRONTEND_DAI_VOICEMMODE1:
1591 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1592 break;
1593 case MSM_FRONTEND_DAI_VOICEMMODE2:
1594 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1595 break;
1596 default:
1597 session_id = 0;
1598 }
1599
1600 pr_debug("%s session_id 0x%x", __func__, session_id);
1601 return session_id;
1602}
1603
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301604static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1605 int dspst_id, int stream_type)
1606{
1607 int copp_idx = 0;
1608 int sess_type = 0;
1609 int j = 0, be_id = 0;
1610 int ret = 0;
1611
1612 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1613 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1614 return 0;
1615 }
1616
1617 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1618 sess_type = SESSION_TYPE_RX;
1619 else
1620 sess_type = SESSION_TYPE_TX;
1621
1622 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1623 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1624 __func__, fe_id, sess_type);
1625 return 0;
1626 }
1627
1628 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1629 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1630 channel_mixer_v2[fe_id][sess_type].input_channel;
1631
1632 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1633 __func__, sess_type, fe_id,
1634 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1635 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1636 msm_bedais[be_id].active);
1637
1638 if ((msm_bedais[be_id].active) &&
1639 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1640 unsigned long copp =
1641 session_copp_map[fe_id][sess_type][be_id];
1642 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1643 if (test_bit(j, &copp)) {
1644 copp_idx = j;
1645 break;
1646 }
1647 }
1648
1649 ret = adm_programable_channel_mixer(
1650 msm_bedais[be_id].port_id,
1651 copp_idx, dspst_id, sess_type,
1652 &channel_mixer_v2[fe_id][sess_type], 0);
1653 }
1654
1655 return ret;
1656}
1657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301658static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1659 int dspst_id, int stream_type)
1660{
1661 int copp_idx = 0;
1662 int sess_type = 0;
1663 int i = 0, j = 0, be_id;
1664 int ret = 0;
1665
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301666 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1667 dspst_id, stream_type);
1668 if (ret) {
1669 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1670 fe_id);
1671 return ret;
1672 }
1673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301674 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1675 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1676 return 0;
1677 }
1678
1679 if (!(channel_mixer[fe_id].enable)) {
1680 pr_debug("%s: channel mixer not enabled for FE %d\n",
1681 __func__, fe_id);
1682 return 0;
1683 }
1684
1685 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1686 sess_type = SESSION_TYPE_RX;
1687 else
1688 sess_type = SESSION_TYPE_TX;
1689
1690 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1691 ++i) {
1692 be_id = channel_input[fe_id][i] - 1;
1693 channel_mixer[fe_id].input_channels[i] =
1694 msm_bedais[be_id].channel;
1695
1696 if ((msm_bedais[be_id].active) &&
1697 test_bit(fe_id,
1698 &msm_bedais[be_id].fe_sessions[0])) {
1699 unsigned long copp =
1700 session_copp_map[fe_id][sess_type][be_id];
1701 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1702 if (test_bit(j, &copp)) {
1703 copp_idx = j;
1704 break;
1705 }
1706 }
1707
1708 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1709 __func__,
1710 fe_id, be_id, msm_bedais[be_id].channel,
1711 copp_idx);
1712 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001713 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301714 copp_idx, dspst_id, sess_type,
1715 channel_mixer + fe_id, i);
1716 }
1717 }
1718
1719 return ret;
1720}
1721
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301722/**
1723 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1724 * setting during runtime.
1725 *
1726 * @be_id: backend index
1727 * @session_id: session index
1728 * @session_type: session type
1729 * @params: parameters for channel mixer
1730 *
1731 * Retuen: 0 for success, else error
1732 */
1733int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1734 int session_type,
1735 struct msm_pcm_channel_mixer *params)
1736{
1737 int rc = 0;
1738 int port_id, copp_idx = 0;
1739
1740 be_id--;
1741 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1742 pr_err("%s: invalid backend id %d\n", __func__,
1743 be_id);
1744 return -EINVAL;
1745 }
1746
1747 port_id = msm_bedais[be_id].port_id;
1748 copp_idx = adm_get_default_copp_idx(port_id);
1749 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1750 __func__, port_id, copp_idx, session_id);
1751
1752 if ((params->input_channel < 0) ||
1753 (params->input_channel > ADM_MAX_CHANNELS)) {
1754 pr_err("%s: invalid input channel %d\n", __func__,
1755 params->input_channel);
1756 return -EINVAL;
1757 }
1758
1759 if ((params->output_channel < 0) ||
1760 (params->output_channel > ADM_MAX_CHANNELS)) {
1761 pr_err("%s: invalid output channel %d\n", __func__,
1762 params->output_channel);
1763 return -EINVAL;
1764 }
1765
1766 params->input_channels[0] = params->input_channel;
1767
1768 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1769 __func__, session_type,
1770 params->override_in_ch_map,
1771 params->override_out_ch_map,
1772 msm_bedais[be_id].active);
1773
1774 rc = adm_programable_channel_mixer(port_id,
1775 copp_idx,
1776 session_id,
1777 session_type,
1778 params,
1779 0);
1780 if (rc) {
1781 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1782 rc = -EINVAL;
1783 }
1784 return rc;
1785}
1786EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301788int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1789 int dspst_id, int stream_type)
1790{
1791 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1792 struct route_payload payload;
1793 u32 channels, sample_rate;
1794 uint16_t bits_per_sample = 16;
1795 uint32_t passthr_mode = LEGACY_PCM;
1796 int ret = 0;
1797
1798 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1799 /* bad ID assigned in machine driver */
1800 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1801 return -EINVAL;
1802 }
1803
1804 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1805 session_type = SESSION_TYPE_RX;
1806 path_type = ADM_PATH_PLAYBACK;
1807 port_type = MSM_AFE_PORT_TYPE_RX;
1808 } else {
1809 session_type = SESSION_TYPE_TX;
1810 path_type = ADM_PATH_LIVE_REC;
1811 port_type = MSM_AFE_PORT_TYPE_TX;
1812 }
1813
1814 mutex_lock(&routing_lock);
1815
1816 payload.num_copps = 0; /* only RX needs to use payload */
1817 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1818 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301819 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301820
1821 /* re-enable EQ if active */
1822 msm_qti_pp_send_eq_values(fedai_id);
1823 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1824 if (!is_be_dai_extproc(i) &&
1825 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1826 (msm_bedais[i].active) &&
1827 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1828 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301829 int port_id = get_port_id(msm_bedais[i].port_id);
1830
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301831 /*
1832 * check if ADM needs to be configured with different
1833 * channel mapping than backend
1834 */
1835 if (!msm_bedais[i].adm_override_ch)
1836 channels = msm_bedais[i].channel;
1837 else
1838 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301839
1840 bits_per_sample = msm_routing_get_bit_width(
1841 msm_bedais[i].format);
1842
1843 app_type =
1844 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1845 if (app_type) {
1846 app_type_idx =
1847 msm_pcm_routing_get_app_type_idx(app_type);
1848 sample_rate =
1849 fe_dai_app_type_cfg[fedai_id][session_type][i]
1850 .sample_rate;
1851 bits_per_sample =
1852 app_type_cfg[app_type_idx].bit_width;
1853 } else
1854 sample_rate = msm_bedais[i].sample_rate;
1855
1856 acdb_dev_id =
1857 fe_dai_app_type_cfg[fedai_id][session_type][i]
1858 .acdb_dev_id;
1859 topology = msm_routing_get_adm_topology(fedai_id,
1860 session_type,
1861 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301862 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301863 sample_rate, channels, topology,
1864 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301865 app_type, acdb_dev_id,
1866 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301867 if ((copp_idx < 0) ||
1868 (copp_idx >= MAX_COPPS_PER_PORT)) {
1869 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001870 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301871 mutex_unlock(&routing_lock);
1872 return -EINVAL;
1873 }
1874 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1875 __func__, fedai_id, session_type, i);
1876 set_bit(copp_idx,
1877 &session_copp_map[fedai_id][session_type][i]);
1878
1879 if (msm_is_resample_needed(
1880 sample_rate,
1881 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301882 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301883 msm_bedais[i].sample_rate);
1884
1885 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1886 unsigned long copp =
1887 session_copp_map[fedai_id][session_type][i];
1888 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301889 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301890 payload.copp_idx[num_copps] = j;
1891 payload.app_type[num_copps] =
1892 fe_dai_app_type_cfg
1893 [fedai_id][session_type]
1894 [i].app_type;
1895 payload.acdb_dev_id[num_copps] =
1896 fe_dai_app_type_cfg
1897 [fedai_id][session_type]
1898 [i].acdb_dev_id;
1899 payload.sample_rate[num_copps] =
1900 fe_dai_app_type_cfg
1901 [fedai_id][session_type]
1902 [i].sample_rate;
1903 num_copps++;
1904 }
1905 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301906 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301907 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1908 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301909 }
1910 }
1911 if (num_copps) {
1912 payload.num_copps = num_copps;
1913 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1914 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1915 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1916 }
1917
1918 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1919 dspst_id, stream_type);
1920 mutex_unlock(&routing_lock);
1921 return ret;
1922}
1923
1924int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1925 int dspst_id, int stream_type,
1926 struct msm_pcm_routing_evt event_info)
1927{
1928 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1929 stream_type)) {
1930 pr_err("%s: failed to reg phy stream\n", __func__);
1931 return -EINVAL;
1932 }
1933
1934 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1935 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1936 else
1937 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1938 return 0;
1939}
1940
1941void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1942{
Surendar Karkae7507512018-07-20 15:46:54 +05301943 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301944 struct msm_pcm_routing_fdai_data *fdai;
1945
1946 if (!is_mm_lsm_fe_id(fedai_id)) {
1947 /* bad ID assigned in machine driver */
1948 pr_err("%s: bad MM ID\n", __func__);
1949 return;
1950 }
1951
1952 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1953 port_type = MSM_AFE_PORT_TYPE_RX;
1954 session_type = SESSION_TYPE_RX;
1955 path_type = ADM_PATH_PLAYBACK;
1956 } else {
1957 port_type = MSM_AFE_PORT_TYPE_TX;
1958 session_type = SESSION_TYPE_TX;
1959 path_type = ADM_PATH_LIVE_REC;
1960 }
1961
1962 mutex_lock(&routing_lock);
1963 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1964 if (!is_be_dai_extproc(i) &&
1965 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1966 (msm_bedais[i].active) &&
1967 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1968 int idx;
1969 unsigned long copp =
1970 session_copp_map[fedai_id][session_type][i];
1971 fdai = &fe_dai_map[fedai_id][session_type];
1972
1973 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1974 if (test_bit(idx, &copp))
1975 break;
1976
1977 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1978 pr_debug("%s: copp idx is invalid, exiting\n",
1979 __func__);
1980 continue;
1981 }
Surendar Karkae7507512018-07-20 15:46:54 +05301982 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301983 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301984 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001985 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301986 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301987 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1988 __func__, copp, fedai_id, session_type, i);
1989 clear_bit(idx,
1990 &session_copp_map[fedai_id][session_type][i]);
1991 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1992 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1993 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301994 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301995 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301996 }
1997 }
1998
1999 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2000 fe_dai_map[fedai_id][session_type].be_srate = 0;
2001 mutex_unlock(&routing_lock);
2002}
2003
2004/* Check if FE/BE route is set */
2005static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2006{
2007 bool rc = false;
2008
2009 if (!is_mm_lsm_fe_id(fe_id)) {
2010 /* recheck FE ID in the mixer control defined in this file */
2011 pr_err("%s: bad MM ID\n", __func__);
2012 return rc;
2013 }
2014
2015 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2016 rc = true;
2017
2018 return rc;
2019}
2020
2021static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2022{
2023 int session_type, path_type, topology;
2024 u32 channels, sample_rate;
2025 uint16_t bits_per_sample = 16;
2026 struct msm_pcm_routing_fdai_data *fdai;
2027 uint32_t passthr_mode;
2028 bool is_lsm;
2029
2030 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2031
2032 if (!is_mm_lsm_fe_id(val)) {
2033 /* recheck FE ID in the mixer control defined in this file */
2034 pr_err("%s: bad MM ID\n", __func__);
2035 return;
2036 }
2037
2038 if (!route_check_fe_id_adm_support(val)) {
2039 /* ignore adm open if not supported for fe_id */
2040 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002041 if (set)
2042 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2043 else
2044 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302045 return;
2046 }
2047
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302048 session_type =
2049 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2050 SESSION_TYPE_RX : SESSION_TYPE_TX;
2051 fdai = &fe_dai_map[val][session_type];
2052 passthr_mode = fdai->passthr_mode;
2053 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302054 if (passthr_mode != LEGACY_PCM)
2055 path_type = ADM_PATH_COMPRESSED_RX;
2056 else
2057 path_type = ADM_PATH_PLAYBACK;
2058 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002059 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302060 path_type = ADM_PATH_COMPRESSED_TX;
2061 else
2062 path_type = ADM_PATH_LIVE_REC;
2063 }
2064 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2065 (val <= MSM_FRONTEND_DAI_LSM8);
2066
2067 mutex_lock(&routing_lock);
2068 if (set) {
2069 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2070 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2071 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2072 voc_start_playback(set, msm_bedais[reg].port_id);
2073
2074 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302075 if (msm_bedais[reg].active && fdai->strm_id !=
2076 INVALID_SESSION) {
2077 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302078 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302079 /*
2080 * check if ADM needs to be configured with different
2081 * channel mapping than backend
2082 */
2083 if (!msm_bedais[reg].adm_override_ch)
2084 channels = msm_bedais[reg].channel;
2085 else
2086 channels = msm_bedais[reg].adm_override_ch;
2087 if (session_type == SESSION_TYPE_TX &&
2088 fdai->be_srate &&
2089 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2090 pr_debug("%s: flush strm %d diff BE rates\n",
2091 __func__, fdai->strm_id);
2092
2093 if (fdai->event_info.event_func)
2094 fdai->event_info.event_func(
2095 MSM_PCM_RT_EVT_BUF_RECFG,
2096 fdai->event_info.priv_data);
2097 fdai->be_srate = 0; /* might not need it */
2098 }
2099
2100 bits_per_sample = msm_routing_get_bit_width(
2101 msm_bedais[reg].format);
2102
2103 app_type =
2104 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2105 if (app_type && is_lsm) {
2106 app_type_idx =
2107 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2108 sample_rate =
2109 fe_dai_app_type_cfg[val][session_type][reg]
2110 .sample_rate;
2111 bits_per_sample =
2112 lsm_app_type_cfg[app_type_idx].bit_width;
2113 } else if (app_type) {
2114 app_type_idx =
2115 msm_pcm_routing_get_app_type_idx(app_type);
2116 sample_rate =
2117 fe_dai_app_type_cfg[val][session_type][reg]
2118 .sample_rate;
2119 bits_per_sample =
2120 app_type_cfg[app_type_idx].bit_width;
2121 } else
2122 sample_rate = msm_bedais[reg].sample_rate;
2123
2124 topology = msm_routing_get_adm_topology(val,
2125 session_type,
2126 reg);
2127 acdb_dev_id =
2128 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302129 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 sample_rate, channels, topology,
2131 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302132 app_type, acdb_dev_id,
2133 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302134 if ((copp_idx < 0) ||
2135 (copp_idx >= MAX_COPPS_PER_PORT)) {
2136 pr_err("%s: adm open failed\n", __func__);
2137 mutex_unlock(&routing_lock);
2138 return;
2139 }
2140 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2141 __func__, val, session_type, reg);
2142 set_bit(copp_idx,
2143 &session_copp_map[val][session_type][reg]);
2144
2145 if (msm_is_resample_needed(
2146 sample_rate,
2147 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302148 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302149 msm_bedais[reg].sample_rate);
2150
2151 if (session_type == SESSION_TYPE_RX &&
2152 fdai->event_info.event_func)
2153 fdai->event_info.event_func(
2154 MSM_PCM_RT_EVT_DEVSWITCH,
2155 fdai->event_info.priv_data);
2156
2157 msm_pcm_routing_build_matrix(val, session_type,
2158 path_type,
2159 fdai->perf_mode,
2160 passthr_mode);
2161 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2162 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302163 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2164 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302165 }
2166 } else {
2167 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2168 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2169 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2170 voc_start_playback(set, msm_bedais[reg].port_id);
2171 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302172 if (msm_bedais[reg].active && fdai->strm_id !=
2173 INVALID_SESSION) {
2174 int idx;
2175 int port_id;
2176 unsigned long copp =
2177 session_copp_map[val][session_type][reg];
2178 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2179 if (test_bit(idx, &copp))
2180 break;
2181
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002182 if (idx >= MAX_COPPS_PER_PORT) {
2183 pr_debug("%s: copp idx is invalid, exiting\n",
2184 __func__);
2185 mutex_unlock(&routing_lock);
2186 return;
2187 }
Surendar Karkae7507512018-07-20 15:46:54 +05302188 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302189 topology = adm_get_topology_for_port_copp_idx(port_id,
2190 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002191 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302192 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2194 __func__, copp, val, session_type, reg,
2195 topology);
2196 clear_bit(idx,
2197 &session_copp_map[val][session_type][reg]);
2198 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2199 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2200 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2201 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302202 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302203 msm_pcm_routing_build_matrix(val, session_type,
2204 path_type,
2205 fdai->perf_mode,
2206 passthr_mode);
2207 }
2208 }
2209 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2210 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2211 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2212
2213 mutex_unlock(&routing_lock);
2214}
2215
2216static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2217 struct snd_ctl_elem_value *ucontrol)
2218{
2219 struct soc_mixer_control *mc =
2220 (struct soc_mixer_control *)kcontrol->private_value;
2221
Meng Wang05d5e9a2018-03-28 16:45:03 +08002222 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302223 ucontrol->value.integer.value[0] = 1;
2224 else
2225 ucontrol->value.integer.value[0] = 0;
2226
Meng Wang05d5e9a2018-03-28 16:45:03 +08002227 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302228 ucontrol->value.integer.value[0]);
2229
2230 return 0;
2231}
2232
2233static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2234 struct snd_ctl_elem_value *ucontrol)
2235{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302236 struct snd_soc_dapm_widget *widget =
2237 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302238 struct soc_mixer_control *mc =
2239 (struct soc_mixer_control *)kcontrol->private_value;
2240 struct snd_soc_dapm_update *update = NULL;
2241
2242 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002243 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2244 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302245 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2246 update);
2247 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002248 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2249 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302250 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2251 update);
2252 }
2253
2254 return 1;
2255}
2256
2257static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2258 struct snd_ctl_elem_value *ucontrol)
2259{
2260 struct soc_mixer_control *mc =
2261 (struct soc_mixer_control *)kcontrol->private_value;
2262
Meng Wang05d5e9a2018-03-28 16:45:03 +08002263 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302264 ucontrol->value.integer.value[0] = 1;
2265 else
2266 ucontrol->value.integer.value[0] = 0;
2267
Meng Wang05d5e9a2018-03-28 16:45:03 +08002268 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302269 ucontrol->value.integer.value[0]);
2270
2271 return 0;
2272}
2273
2274static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2275 struct snd_ctl_elem_value *ucontrol)
2276{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302277 struct snd_soc_dapm_widget *widget =
2278 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302279 struct soc_mixer_control *mc =
2280 (struct soc_mixer_control *)kcontrol->private_value;
2281 struct snd_soc_dapm_update *update = NULL;
2282
Meng Wang05d5e9a2018-03-28 16:45:03 +08002283 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302284 ucontrol->value.integer.value[0]);
2285
2286 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002287 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2288 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289 snd_soc_dapm_mixer_update_power(widget->dapm,
2290 kcontrol, 1, update);
2291 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002292 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2293 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302294 snd_soc_dapm_mixer_update_power(widget->dapm,
2295 kcontrol, 0, update);
2296 }
2297
2298 return 1;
2299}
2300
2301static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2302{
2303 u32 session_id = 0;
2304 u16 path_type;
2305 struct media_format_info voc_be_media_format;
2306
2307 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2308
2309 session_id = msm_pcm_routing_get_voc_sessionid(val);
2310
2311 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2312 __func__, val, session_id);
2313
2314 mutex_lock(&routing_lock);
2315
2316 if (set)
2317 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2318 else
2319 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2320
2321 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2322 afe_get_port_type(msm_bedais[reg].port_id) ==
2323 MSM_AFE_PORT_TYPE_RX) {
2324 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2325 __func__, set, msm_bedais[reg].port_id);
2326 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2327 }
2328
2329 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2330 MSM_AFE_PORT_TYPE_RX)
2331 path_type = RX_PATH;
2332 else
2333 path_type = TX_PATH;
2334
2335 if (set) {
2336 if (msm_bedais[reg].active) {
2337 voc_set_route_flag(session_id, path_type, 1);
2338
2339 memset(&voc_be_media_format, 0,
2340 sizeof(struct media_format_info));
2341
2342 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2343 voc_be_media_format.num_channels =
2344 msm_bedais[reg].channel;
2345 voc_be_media_format.sample_rate =
2346 msm_bedais[reg].sample_rate;
2347 voc_be_media_format.bits_per_sample =
2348 msm_bedais[reg].format;
2349 /* Defaulting this to 1 for voice call usecases */
2350 voc_be_media_format.channel_mapping[0] = 1;
2351
2352 voc_set_device_config(session_id, path_type,
2353 &voc_be_media_format);
2354
2355 if (voc_get_route_flag(session_id, TX_PATH) &&
2356 voc_get_route_flag(session_id, RX_PATH))
2357 voc_enable_device(session_id);
2358 } else {
2359 pr_debug("%s BE is not active\n", __func__);
2360 }
2361 } else {
2362 voc_set_route_flag(session_id, path_type, 0);
2363 voc_disable_device(session_id);
2364 }
2365
2366 mutex_unlock(&routing_lock);
2367
2368}
2369
2370static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2371 struct snd_ctl_elem_value *ucontrol)
2372{
2373 struct soc_mixer_control *mc =
2374 (struct soc_mixer_control *)kcontrol->private_value;
2375
2376 mutex_lock(&routing_lock);
2377
Meng Wang05d5e9a2018-03-28 16:45:03 +08002378 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302379 ucontrol->value.integer.value[0] = 1;
2380 else
2381 ucontrol->value.integer.value[0] = 0;
2382
2383 mutex_unlock(&routing_lock);
2384
Meng Wang05d5e9a2018-03-28 16:45:03 +08002385 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302386 ucontrol->value.integer.value[0]);
2387
2388 return 0;
2389}
2390
2391static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2392 struct snd_ctl_elem_value *ucontrol)
2393{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302394 struct snd_soc_dapm_widget *widget =
2395 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302396 struct soc_mixer_control *mc =
2397 (struct soc_mixer_control *)kcontrol->private_value;
2398 struct snd_soc_dapm_update *update = NULL;
2399
2400 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002401 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302402 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2403 update);
2404 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002405 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302406 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2407 update);
2408 }
2409
2410 return 1;
2411}
2412
2413static int msm_routing_get_voice_stub_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_stub_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]) {
2444 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002445 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302446 mutex_unlock(&routing_lock);
2447
2448 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2449 update);
2450 } else {
2451 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002452 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302453 mutex_unlock(&routing_lock);
2454
2455 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2456 update);
2457 }
2458
Meng Wang05d5e9a2018-03-28 16:45:03 +08002459 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302460 ucontrol->value.integer.value[0]);
2461
2462 return 1;
2463}
2464
2465/*
2466 * Return the mapping between port ID and backend ID to enable the AFE callback
2467 * to determine the acdb_dev_id from the port id
2468 */
2469int msm_pcm_get_be_id_from_port_id(int port_id)
2470{
2471 int i;
2472 int be_id = -EINVAL;
2473
2474 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2475 if (msm_bedais[i].port_id == port_id) {
2476 be_id = i;
2477 break;
2478 }
2479 }
2480
2481 return be_id;
2482}
2483
2484/*
2485 * Return the registered dev_acdb_id given a port ID to enable identifying the
2486 * correct AFE calibration information by comparing the header information.
2487 */
2488static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2489{
2490 int acdb_id = -EINVAL;
2491 int i = 0;
2492 int session;
2493 int port_type = afe_get_port_type(port_id);
2494 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2495
2496 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2497 __func__, port_id, be_id, port_type);
2498
2499 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2500 session = SESSION_TYPE_TX;
2501 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2502 session = SESSION_TYPE_RX;
2503 } else {
2504 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2505 acdb_id = -EINVAL;
2506 goto exit;
2507 }
2508
2509 if (be_id < 0) {
2510 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2511 goto exit;
2512 }
2513
2514 mutex_lock(&routing_lock);
2515 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2516 MSM_FRONTEND_DAI_MAX);
2517 if (i < MSM_FRONTEND_DAI_MAX)
2518 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2519
2520 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2521 __func__, i, session, be_id, acdb_id);
2522 mutex_unlock(&routing_lock);
2523exit:
2524 return acdb_id;
2525}
2526
2527static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2528 struct snd_ctl_elem_value *ucontrol)
2529{
2530 ucontrol->value.integer.value[0] = fm_switch_enable;
2531 pr_debug("%s: FM Switch enable %ld\n", __func__,
2532 ucontrol->value.integer.value[0]);
2533 return 0;
2534}
2535
2536static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2537 struct snd_ctl_elem_value *ucontrol)
2538{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302539 struct snd_soc_dapm_widget *widget =
2540 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302541 struct snd_soc_dapm_update *update = NULL;
2542
2543 pr_debug("%s: FM Switch enable %ld\n", __func__,
2544 ucontrol->value.integer.value[0]);
2545 if (ucontrol->value.integer.value[0])
2546 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2547 update);
2548 else
2549 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2550 update);
2551 fm_switch_enable = ucontrol->value.integer.value[0];
2552 return 1;
2553}
2554
2555static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2556 struct snd_ctl_elem_value *ucontrol)
2557{
2558 ucontrol->value.integer.value[0] = hfp_switch_enable;
2559 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2560 ucontrol->value.integer.value[0]);
2561 return 0;
2562}
2563
2564static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2565 struct snd_ctl_elem_value *ucontrol)
2566{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302567 struct snd_soc_dapm_widget *widget =
2568 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302569 struct snd_soc_dapm_update *update = NULL;
2570
2571 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2572 ucontrol->value.integer.value[0]);
2573 if (ucontrol->value.integer.value[0])
2574 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2575 1, update);
2576 else
2577 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2578 0, update);
2579 hfp_switch_enable = ucontrol->value.integer.value[0];
2580 return 1;
2581}
2582
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002583static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2584 struct snd_ctl_elem_value *ucontrol)
2585{
2586 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2587 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2588 ucontrol->value.integer.value[0]);
2589 return 0;
2590}
2591
2592static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2593 struct snd_ctl_elem_value *ucontrol)
2594{
2595 struct snd_soc_dapm_widget *widget =
2596 snd_soc_dapm_kcontrol_widget(kcontrol);
2597 struct snd_soc_dapm_update *update = NULL;
2598
2599 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 a2dp_switch_enable = ucontrol->value.integer.value[0];
2602 if (a2dp_switch_enable)
2603 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2604 1, update);
2605 else
2606 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2607 0, update);
2608 return 1;
2609}
2610
Zhou Songcaa541d2019-02-19 18:37:47 +08002611static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
2614 ucontrol->value.integer.value[0] = sco_switch_enable;
2615 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2616 ucontrol->value.integer.value[0]);
2617 return 0;
2618}
2619
2620static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2621 struct snd_ctl_elem_value *ucontrol)
2622{
2623 struct snd_soc_dapm_widget *widget =
2624 snd_soc_dapm_kcontrol_widget(kcontrol);
2625 struct snd_soc_dapm_update *update = NULL;
2626
2627 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2628 ucontrol->value.integer.value[0]);
2629 sco_switch_enable = ucontrol->value.integer.value[0];
2630 if (sco_switch_enable)
2631 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2632 1, update);
2633 else
2634 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2635 0, update);
2636 return 1;
2637}
2638
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302639static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2640 struct snd_ctl_elem_value *ucontrol)
2641{
2642 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2643 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2644 ucontrol->value.integer.value[0]);
2645 return 0;
2646}
2647
2648static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2649 struct snd_ctl_elem_value *ucontrol)
2650{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302651 struct snd_soc_dapm_widget *widget =
2652 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302653 struct snd_soc_dapm_update *update = NULL;
2654
2655 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2656 ucontrol->value.integer.value[0]);
2657 if (ucontrol->value.integer.value[0])
2658 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2659 update);
2660 else
2661 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2662 update);
2663 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2664 return 1;
2665}
2666
2667static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2668 struct snd_ctl_elem_value *ucontrol)
2669{
2670 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2671 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2672 ucontrol->value.integer.value[0]);
2673 return 0;
2674}
2675
2676static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2677 struct snd_ctl_elem_value *ucontrol)
2678{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302679 struct snd_soc_dapm_widget *widget =
2680 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302681 struct snd_soc_dapm_update *update = NULL;
2682
2683 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2684 ucontrol->value.integer.value[0]);
2685 if (ucontrol->value.integer.value[0])
2686 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2687 update);
2688 else
2689 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2690 update);
2691 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2692 return 1;
2693}
2694
2695static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2696 struct snd_ctl_elem_value *ucontrol)
2697{
2698 ucontrol->value.integer.value[0] = usb_switch_enable;
2699 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2700 ucontrol->value.integer.value[0]);
2701 return 0;
2702}
2703
2704static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2705 struct snd_ctl_elem_value *ucontrol)
2706{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302707 struct snd_soc_dapm_widget *widget =
2708 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302709 struct snd_soc_dapm_update *update = NULL;
2710
2711 pr_debug("%s: USB Switch enable %ld\n", __func__,
2712 ucontrol->value.integer.value[0]);
2713 if (ucontrol->value.integer.value[0])
2714 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2715 1, update);
2716 else
2717 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2718 0, update);
2719 usb_switch_enable = ucontrol->value.integer.value[0];
2720 return 1;
2721}
2722
2723static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2724 struct snd_ctl_elem_value *ucontrol)
2725{
2726 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2727 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2728 ucontrol->value.integer.value[0]);
2729 return 0;
2730}
2731
2732static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2733 struct snd_ctl_elem_value *ucontrol)
2734{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302735 struct snd_soc_dapm_widget *widget =
2736 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302737 struct snd_soc_dapm_update *update = NULL;
2738
2739 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2740 ucontrol->value.integer.value[0]);
2741 if (ucontrol->value.integer.value[0])
2742 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2743 update);
2744 else
2745 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2746 update);
2747 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2748 return 1;
2749}
2750
2751static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2752 struct snd_ctl_elem_value *ucontrol)
2753{
2754 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2755 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2756 ucontrol->value.integer.value[0]);
2757 return 0;
2758}
2759
2760static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2761 struct snd_ctl_elem_value *ucontrol)
2762{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302763 struct snd_soc_dapm_widget *widget =
2764 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302765 struct snd_soc_dapm_update *update = NULL;
2766
2767 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2768 ucontrol->value.integer.value[0]);
2769 if (ucontrol->value.integer.value[0])
2770 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2771 update);
2772 else
2773 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2774 update);
2775 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2776 return 1;
2777}
2778
2779static int msm_routing_get_tert_mi2s_switch_mixer(
2780 struct snd_kcontrol *kcontrol,
2781 struct snd_ctl_elem_value *ucontrol)
2782{
2783 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2784 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2785 ucontrol->value.integer.value[0]);
2786 return 0;
2787}
2788
2789static int msm_routing_put_tert_mi2s_switch_mixer(
2790 struct snd_kcontrol *kcontrol,
2791 struct snd_ctl_elem_value *ucontrol)
2792{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302793 struct snd_soc_dapm_widget *widget =
2794 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302795 struct snd_soc_dapm_update *update = NULL;
2796
2797 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2798 ucontrol->value.integer.value[0]);
2799 if (ucontrol->value.integer.value[0])
2800 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2801 update);
2802 else
2803 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2804 update);
2805 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2806 return 1;
2807}
2808
2809static int msm_routing_get_quat_mi2s_switch_mixer(
2810 struct snd_kcontrol *kcontrol,
2811 struct snd_ctl_elem_value *ucontrol)
2812{
2813 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2814 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2815 ucontrol->value.integer.value[0]);
2816 return 0;
2817}
2818
2819static int msm_routing_put_quat_mi2s_switch_mixer(
2820 struct snd_kcontrol *kcontrol,
2821 struct snd_ctl_elem_value *ucontrol)
2822{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302823 struct snd_soc_dapm_widget *widget =
2824 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302825 struct snd_soc_dapm_update *update = NULL;
2826
2827 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2828 ucontrol->value.integer.value[0]);
2829 if (ucontrol->value.integer.value[0])
2830 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2831 update);
2832 else
2833 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2834 update);
2835 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2836 return 1;
2837}
2838
Rohit Kumara5077932017-09-10 22:05:05 +05302839static int msm_routing_get_quin_mi2s_switch_mixer(
2840 struct snd_kcontrol *kcontrol,
2841 struct snd_ctl_elem_value *ucontrol)
2842{
2843 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2844 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2845 ucontrol->value.integer.value[0]);
2846 return 0;
2847}
2848
2849static int msm_routing_put_quin_mi2s_switch_mixer(
2850 struct snd_kcontrol *kcontrol,
2851 struct snd_ctl_elem_value *ucontrol)
2852{
2853 struct snd_soc_dapm_widget *widget =
2854 snd_soc_dapm_kcontrol_widget(kcontrol);
2855 struct snd_soc_dapm_update *update = NULL;
2856
2857 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2858 ucontrol->value.integer.value[0]);
2859 if (ucontrol->value.integer.value[0])
2860 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2861 update);
2862 else
2863 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2864 update);
2865 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2866 return 1;
2867}
2868
Karthikeyan Manic3700752019-03-11 18:33:53 -07002869static int msm_routing_get_sen_mi2s_switch_mixer(
2870 struct snd_kcontrol *kcontrol,
2871 struct snd_ctl_elem_value *ucontrol)
2872{
2873 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2874 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2875 ucontrol->value.integer.value[0]);
2876 return 0;
2877}
2878
2879static int msm_routing_put_sen_mi2s_switch_mixer(
2880 struct snd_kcontrol *kcontrol,
2881 struct snd_ctl_elem_value *ucontrol)
2882{
2883 struct snd_soc_dapm_widget *widget =
2884 snd_soc_dapm_kcontrol_widget(kcontrol);
2885 struct snd_soc_dapm_update *update = NULL;
2886
2887 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2888 ucontrol->value.integer.value[0]);
2889 if (ucontrol->value.integer.value[0])
2890 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2891 update);
2892 else
2893 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2894 update);
2895 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2896 return 1;
2897}
2898
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302899static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2900 struct snd_ctl_elem_value *ucontrol)
2901{
2902 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2903 pr_debug("%s: FM Switch enable %ld\n", __func__,
2904 ucontrol->value.integer.value[0]);
2905 return 0;
2906}
2907
2908static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2909 struct snd_ctl_elem_value *ucontrol)
2910{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302911 struct snd_soc_dapm_widget *widget =
2912 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302913 struct snd_soc_dapm_update *update = NULL;
2914
2915 pr_debug("%s: FM Switch enable %ld\n", __func__,
2916 ucontrol->value.integer.value[0]);
2917 if (ucontrol->value.integer.value[0])
2918 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2919 update);
2920 else
2921 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2922 update);
2923 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2924 return 1;
2925}
2926
2927static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2928 struct snd_ctl_elem_value *ucontrol)
2929{
2930 ucontrol->value.integer.value[0] = lsm_port_index;
2931 return 0;
2932}
2933
2934static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2935 struct snd_ctl_elem_value *ucontrol)
2936{
2937 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2938 int mux = ucontrol->value.enumerated.item[0];
2939 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2940
2941 if (mux >= e->items) {
2942 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2943 return -EINVAL;
2944 }
2945
2946 pr_debug("%s: LSM enable %ld\n", __func__,
2947 ucontrol->value.integer.value[0]);
2948 switch (ucontrol->value.integer.value[0]) {
2949 case 1:
2950 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2951 break;
2952 case 2:
2953 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2954 break;
2955 case 3:
2956 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2957 break;
2958 case 4:
2959 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2960 break;
2961 case 5:
2962 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2963 break;
2964 case 6:
2965 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2966 break;
2967 case 7:
2968 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2969 break;
2970 case 8:
2971 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2972 break;
2973 case 9:
2974 lsm_port = ADM_LSM_PORT_ID;
2975 break;
2976 case 10:
2977 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2978 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302979 case 11:
2980 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2981 break;
2982 case 12:
2983 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2984 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302985 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002986 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302987 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302988 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002989 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2990 break;
2991 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302992 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2993 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302994 default:
2995 pr_err("Default lsm port");
2996 break;
2997 }
2998 set_lsm_port(lsm_port);
2999 lsm_port_index = ucontrol->value.integer.value[0];
3000
3001 return 0;
3002}
3003
3004static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3005 struct snd_ctl_elem_value *ucontrol)
3006{
3007 int i;
3008 u16 port_id;
3009 enum afe_mad_type mad_type;
3010
3011 pr_debug("%s: enter\n", __func__);
3012 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3013 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3014 strlen(lsm_port_text[i])))
3015 break;
3016
3017 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003018 pr_warn("%s: Invalid id name %s\n", __func__,
3019 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303020 return -EINVAL;
3021 }
3022
3023 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3024
3025 /*Check for Tertiary/Quaternary/INT3 TX port*/
3026 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3027 strlen(lsm_port_text[7])))
3028 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3029
3030 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3031 strlen(lsm_port_text[8])))
3032 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3033
3034 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3035 strlen(lsm_port_text[10])))
3036 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3037
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303038 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3039 strlen(lsm_port_text[13])))
3040 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3041
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303042 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3043 strlen(lsm_port_text[14])))
3044 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303046 mad_type = afe_port_get_mad_type(port_id);
3047 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3048 mad_type);
3049 switch (mad_type) {
3050 case MAD_HW_NONE:
3051 ucontrol->value.integer.value[0] = MADNONE;
3052 break;
3053 case MAD_HW_AUDIO:
3054 ucontrol->value.integer.value[0] = MADAUDIO;
3055 break;
3056 case MAD_HW_BEACON:
3057 ucontrol->value.integer.value[0] = MADBEACON;
3058 break;
3059 case MAD_HW_ULTRASOUND:
3060 ucontrol->value.integer.value[0] = MADULTRASOUND;
3061 break;
3062 case MAD_SW_AUDIO:
3063 ucontrol->value.integer.value[0] = MADSWAUDIO;
3064 break;
3065 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003066 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303067 return -EINVAL;
3068 }
3069 return 0;
3070}
3071
3072static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3073 struct snd_ctl_elem_value *ucontrol)
3074{
3075 int i;
3076 u16 port_id;
3077 enum afe_mad_type mad_type;
3078
3079 pr_debug("%s: enter\n", __func__);
3080 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3081 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3082 strlen(lsm_port_text[i])))
3083 break;
3084
3085 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003086 pr_warn("%s: Invalid id name %s\n", __func__,
3087 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303088 return -EINVAL;
3089 }
3090
3091 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3092 switch (ucontrol->value.integer.value[0]) {
3093 case MADNONE:
3094 mad_type = MAD_HW_NONE;
3095 break;
3096 case MADAUDIO:
3097 mad_type = MAD_HW_AUDIO;
3098 break;
3099 case MADBEACON:
3100 mad_type = MAD_HW_BEACON;
3101 break;
3102 case MADULTRASOUND:
3103 mad_type = MAD_HW_ULTRASOUND;
3104 break;
3105 case MADSWAUDIO:
3106 mad_type = MAD_SW_AUDIO;
3107 break;
3108 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003109 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303110 return -EINVAL;
3111 }
3112
3113 /*Check for Tertiary/Quaternary/INT3 TX port*/
3114 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3115 strlen(lsm_port_text[7])))
3116 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3117
3118 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3119 strlen(lsm_port_text[8])))
3120 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3121
3122 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3123 strlen(lsm_port_text[10])))
3124 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3125
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303126 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3127 strlen(lsm_port_text[13])))
3128 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3129
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303130 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3131 strlen(lsm_port_text[14])))
3132 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3133
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303134 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3135 mad_type);
3136 return afe_port_set_mad_type(port_id, mad_type);
3137}
3138
3139static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3140
Surendar Karka25e77dd2019-05-09 14:33:45 +05303141static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303142 adm_override_chs_text);
3143
3144static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3145{
3146 int backend_id;
3147
3148 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3149 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303150 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3151 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303152 } else {
3153 pr_err("%s: unsupported backend id: %s",
3154 __func__, kcontrol->id.name);
3155 return -EINVAL;
3156 }
3157
3158 return backend_id;
3159}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303161static int msm_routing_adm_channel_config_get(
3162 struct snd_kcontrol *kcontrol,
3163 struct snd_ctl_elem_value *ucontrol)
3164{
3165 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3166
3167 if (backend_id >= 0) {
3168 mutex_lock(&routing_lock);
3169 ucontrol->value.integer.value[0] =
3170 msm_bedais[backend_id].adm_override_ch;
3171 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3172 ucontrol->value.integer.value[0], backend_id);
3173 mutex_unlock(&routing_lock);
3174 }
3175
3176 return 0;
3177}
3178
3179static int msm_routing_adm_channel_config_put(
3180 struct snd_kcontrol *kcontrol,
3181 struct snd_ctl_elem_value *ucontrol)
3182{
3183 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3184
3185 if (backend_id >= 0) {
3186 mutex_lock(&routing_lock);
3187 msm_bedais[backend_id].adm_override_ch =
3188 ucontrol->value.integer.value[0];
3189 pr_debug("%s:updating BE :%d adm channels: %d\n",
3190 __func__, backend_id,
3191 msm_bedais[backend_id].adm_override_ch);
3192 mutex_unlock(&routing_lock);
3193 }
3194
3195 return 0;
3196}
3197
3198static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303199 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3200 msm_routing_adm_channel_config_get,
3201 msm_routing_adm_channel_config_put),
3202 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303203 msm_routing_adm_channel_config_get,
3204 msm_routing_adm_channel_config_put),
3205};
3206
3207static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3208 struct snd_ctl_elem_value *ucontrol)
3209{
3210
3211 mutex_lock(&routing_lock);
3212 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3213 mutex_unlock(&routing_lock);
3214 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3215 ucontrol->value.integer.value[0]);
3216 return 0;
3217};
3218
3219static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3220 struct snd_ctl_elem_value *ucontrol)
3221{
3222 struct aanc_data aanc_info;
3223
3224 mutex_lock(&routing_lock);
3225 memset(&aanc_info, 0x00, sizeof(aanc_info));
3226 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3227 ucontrol->value.integer.value[0]);
3228 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3229 if (ucontrol->value.integer.value[0] == 0) {
3230 aanc_info.aanc_active = false;
3231 aanc_info.aanc_tx_port = 0;
3232 aanc_info.aanc_rx_port = 0;
3233 } else {
3234 aanc_info.aanc_active = true;
3235 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3236 aanc_info.aanc_tx_port =
3237 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3238 }
3239 afe_set_aanc_info(&aanc_info);
3240 mutex_unlock(&routing_lock);
3241 return 0;
3242};
3243static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3244 struct snd_ctl_elem_value *ucontrol)
3245{
3246 int idx = 0, shift = 0;
3247 struct soc_mixer_control *mc =
3248 (struct soc_mixer_control *)kcontrol->private_value;
3249
Meng Wang05d5e9a2018-03-28 16:45:03 +08003250 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3251 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303252
3253 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3254 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3255 return -EINVAL;
3256 }
3257
3258 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003259 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303260 ucontrol->value.integer.value[0] = 1;
3261 else
3262 ucontrol->value.integer.value[0] = 0;
3263
Meng Wang05d5e9a2018-03-28 16:45:03 +08003264 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303265 ucontrol->value.integer.value[0]);
3266
3267 return 0;
3268}
3269
3270static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3271 struct snd_ctl_elem_value *ucontrol)
3272{
3273 int idx = 0, shift = 0;
3274 struct soc_mixer_control *mc =
3275 (struct soc_mixer_control *)kcontrol->private_value;
3276
Meng Wang05d5e9a2018-03-28 16:45:03 +08003277 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3278 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303279
3280 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3281 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3282 return -EINVAL;
3283 }
3284
Meng Wang05d5e9a2018-03-28 16:45:03 +08003285 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3286 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303287 ucontrol->value.integer.value[0], idx, shift);
3288
3289 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003290 afe_loopback(1, msm_bedais[mc->shift].port_id,
3291 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303292 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003293 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303294 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003295 afe_loopback(0, msm_bedais[mc->shift].port_id,
3296 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303297 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003298 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303299 }
3300
3301 return 1;
3302}
3303
3304static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3305 struct snd_ctl_elem_value *ucontrol)
3306{
3307 u16 fe_id = 0;
3308
3309 fe_id = ((struct soc_mixer_control *)
3310 kcontrol->private_value)->shift;
3311 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3312 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3313 return -EINVAL;
3314 }
3315
3316 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3317
3318 return 0;
3319}
3320
3321static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3322 struct snd_ctl_elem_value *ucontrol)
3323{
3324 u16 fe_id = 0;
3325
3326 fe_id = ((struct soc_mixer_control *)
3327 kcontrol->private_value)->shift;
3328 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3329 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3330 return -EINVAL;
3331 }
3332
3333 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3334
3335 return 1;
3336}
3337
3338static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3339 struct snd_ctl_elem_value *ucontrol)
3340{
3341 u16 fe_id = 0;
3342
3343 fe_id = ((struct soc_multi_mixer_control *)
3344 kcontrol->private_value)->shift;
3345 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3346 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3347 return -EINVAL;
3348 }
3349
3350 ucontrol->value.integer.value[0] =
3351 channel_mixer[fe_id].output_channel;
3352 return 0;
3353}
3354
3355static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3356 struct snd_ctl_elem_value *ucontrol)
3357{
3358 u16 fe_id = 0;
3359
3360 fe_id = ((struct soc_multi_mixer_control *)
3361 kcontrol->private_value)->shift;
3362 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3363 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3364 return -EINVAL;
3365 }
3366
3367 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3368 fe_id,
3369 (unsigned int)(ucontrol->value.integer.value[0]));
3370 channel_mixer[fe_id].output_channel =
3371 (unsigned int)(ucontrol->value.integer.value[0]);
3372
3373 return 1;
3374}
3375
3376static const char *const ch_mixer[] = {"Disable", "Enable"};
3377
3378/* If new backend is added, need update this array */
3379static const char *const be_name[] = {
3380"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3381"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3382"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3383"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3384"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3385"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3386"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3387"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3388"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3389"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3390"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3391"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003392"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303393"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3394"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3395"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3396"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3397"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3398"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3399"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3400"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3401"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3402"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3403"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3404"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3405"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3406"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3407"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3408"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3409"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303410"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3411"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3412"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3413"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003414"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3415"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3416"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3417"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003418"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3419"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3420"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3421"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3422"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3423"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3424"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3425"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 -08003426"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 +05303427"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3428"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3429"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3430"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3431"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003432"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303433};
3434
3435static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3436 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3437static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3438 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3439static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3440 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3441static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3442 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3443
3444static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3445 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3446static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3447 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3448static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3449 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3450static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3451 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3452static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3453 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3454static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3455 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3456static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3457 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3458static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3459 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3460
3461static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3462 unsigned int channels,
3463 unsigned int items, const char *const names[])
3464{
3465 if (uinfo->value.enumerated.item >= items)
3466 uinfo->value.enumerated.item = items - 1;
3467
3468 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3469 sizeof(uinfo->value.enumerated.name),
3470 "ALSA: too long item name '%s'\n",
3471 names[uinfo->value.enumerated.item]);
3472 strlcpy(uinfo->value.enumerated.name,
3473 names[uinfo->value.enumerated.item],
3474 sizeof(uinfo->value.enumerated.name));
3475 return 0;
3476}
3477
3478static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3479 struct snd_ctl_elem_info *uinfo)
3480{
3481 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3482
3483 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3484 uinfo->count = 1;
3485
3486 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3487 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3488
3489 return 0;
3490}
3491static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3492 struct snd_ctl_elem_value *ucontrol)
3493{
3494 u16 fe_id = 0;
3495
3496 fe_id = ((struct soc_enum *)
3497 kcontrol->private_value)->shift_l;
3498 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3499 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3500 return -EINVAL;
3501 }
3502
3503 pr_debug("%s: FE %d %s\n", __func__,
3504 fe_id,
3505 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3506 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3507 return 0;
3508}
3509
3510static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3511 struct snd_ctl_elem_value *ucontrol)
3512{
3513 u16 fe_id = 0;
3514
3515 fe_id = ((struct soc_enum *)
3516 kcontrol->private_value)->shift_l;
3517 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3518 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3519 return -EINVAL;
3520 }
3521
3522 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3523 pr_debug("%s: %s FE %d\n", __func__,
3524 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3525 fe_id);
3526 return 0;
3527}
3528
3529static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3530 struct snd_ctl_elem_info *uinfo)
3531{
3532 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3533
3534 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3535 uinfo->count = 1;
3536
3537 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3538 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3539
3540 return 0;
3541}
3542
3543static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3544 struct snd_ctl_elem_value *ucontrol)
3545{
3546 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3547 u16 fe_id = 0, in_ch = 0;
3548
3549 fe_id = e->shift_l;
3550 in_ch = e->shift_r;
3551 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3552 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3553 return -EINVAL;
3554 }
3555 if (in_ch >= ADM_MAX_CHANNELS) {
3556 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3557 return -EINVAL;
3558 }
3559
3560 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3561 return 1;
3562}
3563
3564static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3565 struct snd_ctl_elem_value *ucontrol)
3566{
3567 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3568 u16 fe_id = 0, in_ch = 0;
3569
3570 fe_id = e->shift_l;
3571 in_ch = e->shift_r;
3572 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3573 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3574 return -EINVAL;
3575 }
3576 if (in_ch >= ADM_MAX_CHANNELS) {
3577 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3578 return -EINVAL;
3579 }
3580
3581 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3582 return 1;
3583}
3584
3585
3586static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3587 struct snd_ctl_elem_info *uinfo)
3588{
3589 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3590 uinfo->count = ADM_MAX_CHANNELS;
3591 uinfo->value.integer.min = 0;
3592 uinfo->value.integer.max = WEIGHT_0_DB;
3593
3594 return 0;
3595}
3596
3597static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3598 struct snd_ctl_elem_value *ucontrol)
3599{
3600 u16 fe_id = 0, out_ch = 0;
3601 int i, weight;
3602
3603 fe_id = ((struct soc_multi_mixer_control *)
3604 kcontrol->private_value)->shift;
3605 out_ch = ((struct soc_multi_mixer_control *)
3606 kcontrol->private_value)->rshift;
3607 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3608 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3609 return -EINVAL;
3610 }
3611 if (out_ch >= ADM_MAX_CHANNELS) {
3612 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3613 return -EINVAL;
3614 }
3615
3616 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3617 __func__, fe_id,
3618 ucontrol->value.integer.value[0],
3619 ucontrol->value.integer.value[1],
3620 ucontrol->value.integer.value[2],
3621 ucontrol->value.integer.value[3],
3622 ucontrol->value.integer.value[4],
3623 ucontrol->value.integer.value[5],
3624 ucontrol->value.integer.value[6],
3625 ucontrol->value.integer.value[7]);
3626
3627 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3628 weight = ucontrol->value.integer.value[i];
3629 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3630 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3631 __func__, fe_id, out_ch, i,
3632 channel_mixer[fe_id].channel_weight[out_ch][i]);
3633 }
3634
3635 return 0;
3636}
3637
3638static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3639 struct snd_ctl_elem_value *ucontrol)
3640{
3641 u16 fe_id = 0, out_ch = 0;
3642 int i;
3643
3644 fe_id = ((struct soc_multi_mixer_control *)
3645 kcontrol->private_value)->shift;
3646 out_ch = ((struct soc_multi_mixer_control *)
3647 kcontrol->private_value)->rshift;
3648 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3649 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3650 return -EINVAL;
3651 }
3652 if (out_ch >= ADM_MAX_CHANNELS) {
3653 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3654 return -EINVAL;
3655 }
3656
3657 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3658 ucontrol->value.integer.value[i] =
3659 channel_mixer[fe_id].channel_weight[out_ch][i];
3660
3661 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3662 __func__, fe_id,
3663 ucontrol->value.integer.value[0],
3664 ucontrol->value.integer.value[1],
3665 ucontrol->value.integer.value[2],
3666 ucontrol->value.integer.value[3],
3667 ucontrol->value.integer.value[4],
3668 ucontrol->value.integer.value[5],
3669 ucontrol->value.integer.value[6],
3670 ucontrol->value.integer.value[7]);
3671
3672 return 0;
3673}
3674
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303675static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3676 struct snd_ctl_elem_info *uinfo)
3677{
3678 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3679 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3680 /* Valid channel map value ranges from 1 to 64 */
3681 uinfo->value.integer.min = 0;
3682 uinfo->value.integer.max = 64;
3683
3684 return 0;
3685}
3686
3687static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3688 struct snd_ctl_elem_value *ucontrol)
3689{
3690 u16 fe_id = 0;
3691 int i, ch_map;
3692
3693 fe_id = ((struct soc_multi_mixer_control *)
3694 kcontrol->private_value)->shift;
3695 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3696 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3697 return -EINVAL;
3698 }
3699
3700 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3701 ch_map = ucontrol->value.integer.value[i];
3702 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3703 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3704 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3705 }
3706
3707 /* Make override_out_ch_map false if ch map is reset */
3708 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3709 channel_mixer[fe_id].override_out_ch_map = false;
3710 else
3711 channel_mixer[fe_id].override_out_ch_map = true;
3712
3713 return 0;
3714}
3715
3716static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3717 struct snd_ctl_elem_value *ucontrol)
3718{
3719 u16 fe_id = 0;
3720 int i;
3721
3722 fe_id = ((struct soc_multi_mixer_control *)
3723 kcontrol->private_value)->shift;
3724 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3725 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3726 return -EINVAL;
3727 }
3728
3729 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3730 ucontrol->value.integer.value[i] =
3731 channel_mixer[fe_id].out_ch_map[i];
3732
3733 return 0;
3734}
3735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303736static const struct snd_kcontrol_new channel_mixer_controls[] = {
3737 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3738 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3739 msm_pcm_get_channel_rule_index,
3740 msm_pcm_put_channel_rule_index),
3741 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3742 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3743 msm_pcm_get_channel_rule_index,
3744 msm_pcm_put_channel_rule_index),
3745 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3746 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3747 msm_pcm_get_channel_rule_index,
3748 msm_pcm_put_channel_rule_index),
3749 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3750 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3751 msm_pcm_get_channel_rule_index,
3752 msm_pcm_put_channel_rule_index),
3753 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3754 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3755 msm_pcm_get_channel_rule_index,
3756 msm_pcm_put_channel_rule_index),
3757 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3758 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3759 msm_pcm_get_channel_rule_index,
3760 msm_pcm_put_channel_rule_index),
3761
3762 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303763 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303764 msm_pcm_get_out_chs,
3765 msm_pcm_put_out_chs),
3766 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3767 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3768 msm_pcm_get_out_chs,
3769 msm_pcm_put_out_chs),
3770 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3771 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3772 msm_pcm_get_out_chs,
3773 msm_pcm_put_out_chs),
3774 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3775 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3776 msm_pcm_get_out_chs,
3777 msm_pcm_put_out_chs),
3778 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3779 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3780 msm_pcm_get_out_chs,
3781 msm_pcm_put_out_chs),
3782 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3783 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3784 msm_pcm_get_out_chs,
3785 msm_pcm_put_out_chs),
3786 {
3787 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3788 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3789 .name = "MultiMedia1 Channel Mixer",
3790 .info = msm_pcm_channel_mixer_info,
3791 .get = msm_pcm_channel_mixer_get,
3792 .put = msm_pcm_channel_mixer_put,
3793 .private_value = (unsigned long)&(mm1_channel_mux)
3794 },
3795 {
3796 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3797 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3798 .name = "MultiMedia2 Channel Mixer",
3799 .info = msm_pcm_channel_mixer_info,
3800 .get = msm_pcm_channel_mixer_get,
3801 .put = msm_pcm_channel_mixer_put,
3802 .private_value = (unsigned long)&(mm2_channel_mux)
3803 },
3804 {
3805 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3806 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3807 .name = "MultiMedia3 Channel Mixer",
3808 .info = msm_pcm_channel_mixer_info,
3809 .get = msm_pcm_channel_mixer_get,
3810 .put = msm_pcm_channel_mixer_put,
3811 .private_value = (unsigned long)&(mm3_channel_mux)
3812 },
3813 {
3814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3815 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3816 .name = "MultiMedia4 Channel Mixer",
3817 .info = msm_pcm_channel_mixer_info,
3818 .get = msm_pcm_channel_mixer_get,
3819 .put = msm_pcm_channel_mixer_put,
3820 .private_value = (unsigned long)&(mm4_channel_mux)
3821 },
3822 {
3823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3824 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3825 .name = "MultiMedia1 Output Channel1",
3826 .info = msm_pcm_channel_weight_info,
3827 .get = msm_pcm_channel_weight_get,
3828 .put = msm_pcm_channel_weight_put,
3829 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3830 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3831 },
3832 {
3833 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3834 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3835 .name = "MultiMedia1 Output Channel2",
3836 .info = msm_pcm_channel_weight_info,
3837 .get = msm_pcm_channel_weight_get,
3838 .put = msm_pcm_channel_weight_put,
3839 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3840 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3841 },
3842 {
3843 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3844 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3845 .name = "MultiMedia1 Output Channel3",
3846 .info = msm_pcm_channel_weight_info,
3847 .get = msm_pcm_channel_weight_get,
3848 .put = msm_pcm_channel_weight_put,
3849 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3850 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3851 },
3852 {
3853 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3854 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3855 .name = "MultiMedia1 Output Channel4",
3856 .info = msm_pcm_channel_weight_info,
3857 .get = msm_pcm_channel_weight_get,
3858 .put = msm_pcm_channel_weight_put,
3859 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3860 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3861 },
3862 {
3863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3864 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3865 .name = "MultiMedia1 Output Channel5",
3866 .info = msm_pcm_channel_weight_info,
3867 .get = msm_pcm_channel_weight_get,
3868 .put = msm_pcm_channel_weight_put,
3869 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3870 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3871 },
3872 {
3873 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3874 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3875 .name = "MultiMedia1 Output Channel6",
3876 .info = msm_pcm_channel_weight_info,
3877 .get = msm_pcm_channel_weight_get,
3878 .put = msm_pcm_channel_weight_put,
3879 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3880 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3881 },
3882 {
3883 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3884 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3885 .name = "MultiMedia1 Output Channel7",
3886 .info = msm_pcm_channel_weight_info,
3887 .get = msm_pcm_channel_weight_get,
3888 .put = msm_pcm_channel_weight_put,
3889 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3890 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3891 },
3892 {
3893 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3894 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3895 .name = "MultiMedia1 Output Channel8",
3896 .info = msm_pcm_channel_weight_info,
3897 .get = msm_pcm_channel_weight_get,
3898 .put = msm_pcm_channel_weight_put,
3899 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3900 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3901 },
3902 {
3903 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3904 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05303905 .name = "MultiMedia1 Output Channel9",
3906 .info = msm_pcm_channel_weight_info,
3907 .get = msm_pcm_channel_weight_get,
3908 .put = msm_pcm_channel_weight_put,
3909 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3910 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
3911 },
3912 {
3913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3914 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3915 .name = "MultiMedia1 Output Channel10",
3916 .info = msm_pcm_channel_weight_info,
3917 .get = msm_pcm_channel_weight_get,
3918 .put = msm_pcm_channel_weight_put,
3919 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3920 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
3921 },
3922 {
3923 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3924 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303925 .name = "MultiMedia1 Output Channel11",
3926 .info = msm_pcm_channel_weight_info,
3927 .get = msm_pcm_channel_weight_get,
3928 .put = msm_pcm_channel_weight_put,
3929 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3930 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
3931 },
3932 {
3933 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3935 .name = "MultiMedia1 Output Channel12",
3936 .info = msm_pcm_channel_weight_info,
3937 .get = msm_pcm_channel_weight_get,
3938 .put = msm_pcm_channel_weight_put,
3939 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3940 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
3941 },
3942 {
3943 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3944 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3945 .name = "MultiMedia1 Output Channel13",
3946 .info = msm_pcm_channel_weight_info,
3947 .get = msm_pcm_channel_weight_get,
3948 .put = msm_pcm_channel_weight_put,
3949 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3950 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
3951 },
3952 {
3953 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3954 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3955 .name = "MultiMedia1 Output Channel14",
3956 .info = msm_pcm_channel_weight_info,
3957 .get = msm_pcm_channel_weight_get,
3958 .put = msm_pcm_channel_weight_put,
3959 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3960 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
3961 },
3962 {
3963 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3964 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303965 .name = "MultiMedia2 Output Channel1",
3966 .info = msm_pcm_channel_weight_info,
3967 .get = msm_pcm_channel_weight_get,
3968 .put = msm_pcm_channel_weight_put,
3969 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3970 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3971 },
3972 {
3973 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3974 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3975 .name = "MultiMedia2 Output Channel2",
3976 .info = msm_pcm_channel_weight_info,
3977 .get = msm_pcm_channel_weight_get,
3978 .put = msm_pcm_channel_weight_put,
3979 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3980 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3981 },
3982 {
3983 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3984 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3985 .name = "MultiMedia2 Output Channel3",
3986 .info = msm_pcm_channel_weight_info,
3987 .get = msm_pcm_channel_weight_get,
3988 .put = msm_pcm_channel_weight_put,
3989 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3990 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3991 },
3992 {
3993 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3994 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3995 .name = "MultiMedia3 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_MULTIMEDIA3, .rshift = 0,}
4001 },
4002 {
4003 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4004 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4005 .name = "MultiMedia3 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_MULTIMEDIA3, .rshift = 1,}
4011 },
4012 {
4013 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4014 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4015 .name = "MultiMedia1 Channel1",
4016 .info = msm_pcm_channel_input_be_info,
4017 .get = msm_pcm_channel_input_be_get,
4018 .put = msm_pcm_channel_input_be_put,
4019 .private_value = (unsigned long)&(mm1_ch1_enum)
4020 },
4021 {
4022 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4023 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4024 .name = "MultiMedia1 Channel2",
4025 .info = msm_pcm_channel_input_be_info,
4026 .get = msm_pcm_channel_input_be_get,
4027 .put = msm_pcm_channel_input_be_put,
4028 .private_value = (unsigned long)&(mm1_ch2_enum)
4029 },
4030 {
4031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4032 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4033 .name = "MultiMedia1 Channel3",
4034 .info = msm_pcm_channel_input_be_info,
4035 .get = msm_pcm_channel_input_be_get,
4036 .put = msm_pcm_channel_input_be_put,
4037 .private_value = (unsigned long)&(mm1_ch3_enum)
4038 },
4039 {
4040 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4041 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4042 .name = "MultiMedia1 Channel4",
4043 .info = msm_pcm_channel_input_be_info,
4044 .get = msm_pcm_channel_input_be_get,
4045 .put = msm_pcm_channel_input_be_put,
4046 .private_value = (unsigned long)&(mm1_ch4_enum)
4047 },
4048 {
4049 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4050 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4051 .name = "MultiMedia1 Channel5",
4052 .info = msm_pcm_channel_input_be_info,
4053 .get = msm_pcm_channel_input_be_get,
4054 .put = msm_pcm_channel_input_be_put,
4055 .private_value = (unsigned long)&(mm1_ch5_enum)
4056 },
4057 {
4058 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4059 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4060 .name = "MultiMedia1 Channel6",
4061 .info = msm_pcm_channel_input_be_info,
4062 .get = msm_pcm_channel_input_be_get,
4063 .put = msm_pcm_channel_input_be_put,
4064 .private_value = (unsigned long)&(mm1_ch6_enum)
4065 },
4066 {
4067 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4068 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4069 .name = "MultiMedia1 Channel7",
4070 .info = msm_pcm_channel_input_be_info,
4071 .get = msm_pcm_channel_input_be_get,
4072 .put = msm_pcm_channel_input_be_put,
4073 .private_value = (unsigned long)&(mm1_ch7_enum)
4074 },
4075 {
4076 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4077 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4078 .name = "MultiMedia1 Channel8",
4079 .info = msm_pcm_channel_input_be_info,
4080 .get = msm_pcm_channel_input_be_get,
4081 .put = msm_pcm_channel_input_be_put,
4082 .private_value = (unsigned long)&(mm1_ch8_enum)
4083 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304084 {
4085 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4086 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4087 .name = "MultiMedia1 Output Channel Map",
4088 .info = msm_pcm_channel_output_map_info,
4089 .get = msm_pcm_channel_output_map_get,
4090 .put = msm_pcm_channel_output_map_put,
4091 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4092 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
4093 },
4094 {
4095 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4096 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4097 .name = "MultiMedia2 Output Channel Map",
4098 .info = msm_pcm_channel_output_map_info,
4099 .get = msm_pcm_channel_output_map_get,
4100 .put = msm_pcm_channel_output_map_put,
4101 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4102 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
4103 },
4104 {
4105 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4106 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4107 .name = "MultiMedia3 Output Channel Map",
4108 .info = msm_pcm_channel_output_map_info,
4109 .get = msm_pcm_channel_output_map_get,
4110 .put = msm_pcm_channel_output_map_put,
4111 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4112 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
4113 },
4114 {
4115 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4116 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4117 .name = "MultiMedia4 Output Channel Map",
4118 .info = msm_pcm_channel_output_map_info,
4119 .get = msm_pcm_channel_output_map_get,
4120 .put = msm_pcm_channel_output_map_put,
4121 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4122 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
4123 },
4124 {
4125 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4126 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4127 .name = "MultiMedia5 Output Channel Map",
4128 .info = msm_pcm_channel_output_map_info,
4129 .get = msm_pcm_channel_output_map_get,
4130 .put = msm_pcm_channel_output_map_put,
4131 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4132 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
4133 },
4134 {
4135 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4136 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4137 .name = "MultiMedia6 Output Channel Map",
4138 .info = msm_pcm_channel_output_map_info,
4139 .get = msm_pcm_channel_output_map_get,
4140 .put = msm_pcm_channel_output_map_put,
4141 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4142 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
4143 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304144};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304145
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304146static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
4147 struct snd_ctl_elem_value *ucontrol)
4148{
4149 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
4150 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
4151 ucontrol->value.integer.value[0]);
4152 return 0;
4153}
4154
4155static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
4156 struct snd_ctl_elem_value *ucontrol)
4157{
4158 msm_ec_ref_ch = ucontrol->value.integer.value[0];
4159 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
4160 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
4161 return 0;
4162}
4163
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304164static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
4165 struct snd_ctl_elem_value *ucontrol)
4166{
4167 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
4168 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
4169 ucontrol->value.integer.value[0]);
4170 return 0;
4171}
4172
4173static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
4174 struct snd_ctl_elem_value *ucontrol)
4175{
4176 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
4177 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
4178 __func__, msm_ec_ref_ch_downmixed);
4179 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
4180 return 0;
4181}
4182
4183static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
4184 struct snd_ctl_elem_value *ucontrol)
4185{
4186 int i = 0, ret = 0;
4187 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
4188 int out_channel_idx = ((struct soc_multi_mixer_control *)
4189 kcontrol->private_value)->shift;
4190
4191 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
4192 weights[i] = ucontrol->value.integer.value[i];
4193
4194 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
4195 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
4196 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
4197 return ret;
4198}
4199
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304200static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304201 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
4202 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304203
4204static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
4205 struct snd_ctl_elem_value *ucontrol)
4206{
4207 switch (msm_ec_ref_bit_format) {
4208 case SNDRV_PCM_FORMAT_S24_LE:
4209 ucontrol->value.integer.value[0] = 2;
4210 break;
4211 case SNDRV_PCM_FORMAT_S16_LE:
4212 ucontrol->value.integer.value[0] = 1;
4213 break;
4214 default:
4215 ucontrol->value.integer.value[0] = 0;
4216 break;
4217 }
4218 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
4219 __func__, ucontrol->value.integer.value[0]);
4220 return 0;
4221}
4222
4223static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
4224 struct snd_ctl_elem_value *ucontrol)
4225{
4226 u16 bit_width = 0;
4227
4228 switch (ucontrol->value.integer.value[0]) {
4229 case 2:
4230 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
4231 break;
4232 case 1:
4233 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
4234 break;
4235 default:
4236 msm_ec_ref_bit_format = 0;
4237 break;
4238 }
4239
4240 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
4241 bit_width = 16;
4242 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
4243 bit_width = 24;
4244
4245 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
4246 __func__, msm_ec_ref_bit_format);
4247 adm_ec_ref_rx_bit_width(bit_width);
4248 return 0;
4249}
4250
4251static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
4252
4253static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
4254 struct snd_ctl_elem_value *ucontrol)
4255{
4256 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
4257 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
4258 __func__, ucontrol->value.integer.value[0]);
4259 return 0;
4260}
4261
4262static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
4263 struct snd_ctl_elem_value *ucontrol)
4264{
4265 switch (ucontrol->value.integer.value[0]) {
4266 case 0:
4267 msm_ec_ref_sampling_rate = 0;
4268 break;
4269 case 1:
4270 msm_ec_ref_sampling_rate = 8000;
4271 break;
4272 case 2:
4273 msm_ec_ref_sampling_rate = 16000;
4274 break;
4275 case 3:
4276 msm_ec_ref_sampling_rate = 32000;
4277 break;
4278 case 4:
4279 msm_ec_ref_sampling_rate = 44100;
4280 break;
4281 case 5:
4282 msm_ec_ref_sampling_rate = 48000;
4283 break;
4284 case 6:
4285 msm_ec_ref_sampling_rate = 96000;
4286 break;
4287 case 7:
4288 msm_ec_ref_sampling_rate = 192000;
4289 break;
4290 case 8:
4291 msm_ec_ref_sampling_rate = 384000;
4292 break;
4293 default:
4294 msm_ec_ref_sampling_rate = 48000;
4295 break;
4296 }
4297 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
4298 __func__, msm_ec_ref_sampling_rate);
4299 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
4300 return 0;
4301}
4302
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304303static int get_ec_ref_port_id(int value, int *index)
4304{
4305 int port_id;
4306
4307 switch (value) {
4308 case 0:
4309 *index = 0;
4310 port_id = AFE_PORT_INVALID;
4311 break;
4312 case 1:
4313 *index = 1;
4314 port_id = SLIMBUS_0_RX;
4315 break;
4316 case 2:
4317 *index = 2;
4318 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4319 break;
4320 case 3:
4321 *index = 3;
4322 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4323 break;
4324 case 4:
4325 *index = 4;
4326 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4327 break;
4328 case 5:
4329 *index = 5;
4330 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4331 break;
4332 case 6:
4333 *index = 6;
4334 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4335 break;
4336 case 7:
4337 *index = 7;
4338 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4339 break;
4340 case 9:
4341 *index = 9;
4342 port_id = SLIMBUS_5_RX;
4343 break;
4344 case 10:
4345 *index = 10;
4346 port_id = SLIMBUS_1_TX;
4347 break;
4348 case 11:
4349 *index = 11;
4350 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4351 break;
4352 case 12:
4353 *index = 12;
4354 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4355 break;
4356 case 13:
4357 *index = 13;
4358 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4359 break;
4360 case 14:
4361 *index = 14;
4362 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4363 break;
4364 case 15:
4365 *index = 15;
4366 port_id = SLIMBUS_6_RX;
4367 break;
4368 case 16:
4369 *index = 16;
4370 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4371 break;
4372 case 17:
4373 *index = 17;
4374 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4375 break;
4376 case 18:
4377 *index = 18;
4378 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4379 break;
4380 case 19:
4381 *index = 19;
4382 port_id = AFE_PORT_ID_USB_RX;
4383 break;
4384 case 20:
4385 *index = 20;
4386 port_id = AFE_PORT_ID_INT0_MI2S_RX;
4387 break;
4388 case 21:
4389 *index = 21;
4390 port_id = AFE_PORT_ID_INT4_MI2S_RX;
4391 break;
4392 case 22:
4393 *index = 22;
4394 port_id = AFE_PORT_ID_INT3_MI2S_TX;
4395 break;
4396 case 23:
4397 *index = 23;
4398 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4399 break;
4400 case 24:
4401 *index = 24;
4402 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4403 break;
4404 case 25:
4405 *index = 25;
4406 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4407 break;
4408 case 26:
4409 *index = 26;
4410 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4411 break;
4412 case 27:
4413 *index = 27;
4414 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4415 break;
4416 case 28:
4417 *index = 28;
4418 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4419 break;
4420 case 29:
4421 *index = 29;
4422 port_id = SLIMBUS_7_RX;
4423 break;
4424 case 30:
4425 *index = 30;
4426 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4427 break;
4428 case 31:
4429 *index = 31;
4430 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4431 break;
4432 case 32:
4433 *index = 32;
4434 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4435 break;
4436 case 33:
4437 *index = 33;
4438 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4439 break;
4440 case 34:
4441 *index = 34;
4442 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4443 break;
4444 case 35:
4445 *index = 35;
4446 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4447 break;
4448 case 36:
4449 *index = 36;
4450 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4451 break;
4452 default:
4453 *index = 0; /* NONE */
4454 pr_err("%s: Invalid value %d\n", __func__, value);
4455 port_id = AFE_PORT_INVALID;
4456 break;
4457 }
4458
4459 return port_id;
4460}
4461
4462static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
4463 struct snd_ctl_elem_value *ucontrol)
4464{
4465 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
4466 mutex_lock(&routing_lock);
4467 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
4468 mutex_unlock(&routing_lock);
4469
4470 return 0;
4471}
4472
4473static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
4474 struct snd_ctl_elem_value *ucontrol)
4475{
4476 int value = ucontrol->value.integer.value[0];
4477
4478 mutex_lock(&routing_lock);
4479 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
4480 &afe_loopback_tx_port_index);
4481 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
4482 __func__, afe_loopback_tx_port_index);
4483 mutex_unlock(&routing_lock);
4484
4485 return 0;
4486}
4487
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304488static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
4489 "32000", "44100", "48000", "96000", "192000", "384000"};
4490
4491static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304492 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304493 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
4494 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
4495};
4496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304497static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4498 "PRI_MI2S_TX", "SEC_MI2S_TX",
4499 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4500 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4501 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4502 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304503 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4504 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004505 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304506 "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 -07004507 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304508};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509
4510static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4511 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4512};
4513
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304514static const struct snd_kcontrol_new ec_ref_param_controls[] = {
4515 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4516 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4517 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4518 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4519 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4520 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
4521 SOC_ENUM_EXT("EC Reference Downmixed Channels",
4522 msm_route_ec_ref_params_enum[0],
4523 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4524 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
4525 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4526 msm_ec_ref_chmixer_weights_put),
4527 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
4528 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4529 msm_ec_ref_chmixer_weights_put),
4530 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
4531 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4532 msm_ec_ref_chmixer_weights_put),
4533 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
4534 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4535 msm_ec_ref_chmixer_weights_put),
4536 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
4537 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4538 msm_ec_ref_chmixer_weights_put),
4539 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
4540 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
4541 msm_ec_ref_chmixer_weights_put),
4542 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
4543 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
4544};
4545
4546static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4547 struct snd_ctl_elem_value *ucontrol)
4548{
4549 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4550 mutex_lock(&routing_lock);
4551 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4552 mutex_unlock(&routing_lock);
4553
4554 return 0;
4555}
4556
4557static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4558 struct snd_ctl_elem_value *ucontrol)
4559{
4560 int value = ucontrol->value.integer.value[0];
4561 struct snd_soc_dapm_widget *widget =
4562 snd_soc_dapm_kcontrol_widget(kcontrol);
4563 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4564 struct snd_soc_dapm_update *update = NULL;
4565
4566 mutex_lock(&routing_lock);
4567 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
4568 adm_ec_ref_rx_id(msm_ec_ref_port_id);
4569 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4570 __func__, msm_route_ec_ref_rx);
4571 mutex_unlock(&routing_lock);
4572
4573 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4574 msm_route_ec_ref_rx, e, update);
4575 return 0;
4576}
4577
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4579 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4580 msm_route_ec_ref_rx_enum[0],
4581 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4582
4583static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4584 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4585 msm_route_ec_ref_rx_enum[0],
4586 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4587
4588static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4589 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4590 msm_route_ec_ref_rx_enum[0],
4591 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4592
4593static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4594 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4595 msm_route_ec_ref_rx_enum[0],
4596 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4597
4598static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4599 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4600 msm_route_ec_ref_rx_enum[0],
4601 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4602
4603static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4604 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4605 msm_route_ec_ref_rx_enum[0],
4606 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4607
4608static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4609 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4610 msm_route_ec_ref_rx_enum[0],
4611 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4612
4613static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4614 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4615 msm_route_ec_ref_rx_enum[0],
4616 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4617
Asish Bhattacharya34504582017-08-08 12:55:01 +05304618static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4619 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4620 msm_route_ec_ref_rx_enum[0],
4621 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4622
Laxminath Kasam38070be2017-08-17 18:21:59 +05304623static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4624 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4625 msm_route_ec_ref_rx_enum[0],
4626 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4627
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304628static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4629 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4630 msm_route_ec_ref_rx_enum[0],
4631 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4632
4633static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4634 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4635 msm_route_ec_ref_rx_enum[0],
4636 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4637
4638static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4639 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4640 msm_route_ec_ref_rx_enum[0],
4641 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4642
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304643static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4644 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4645 msm_route_ec_ref_rx_enum[0],
4646 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4647
4648static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4649 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4650 msm_route_ec_ref_rx_enum[0],
4651 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4652
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4654 struct snd_ctl_elem_value *ucontrol)
4655{
4656 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4657
4658 mutex_lock(&routing_lock);
4659 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4660 mutex_unlock(&routing_lock);
4661 return 0;
4662}
4663
4664static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4665 struct snd_ctl_elem_value *ucontrol)
4666{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304667 struct snd_soc_dapm_widget *widget =
4668 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 int mux = ucontrol->value.enumerated.item[0];
4670 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4671 int ret = 1;
4672 bool state = true;
4673 uint16_t ext_ec_ref_port_id;
4674 struct snd_soc_dapm_update *update = NULL;
4675
4676 if (mux >= e->items) {
4677 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4678 return -EINVAL;
4679 }
4680
4681 mutex_lock(&routing_lock);
4682 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4683
4684 switch (msm_route_ext_ec_ref) {
4685 case EXT_EC_REF_PRI_MI2S_TX:
4686 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4687 break;
4688 case EXT_EC_REF_SEC_MI2S_TX:
4689 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4690 break;
4691 case EXT_EC_REF_TERT_MI2S_TX:
4692 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4693 break;
4694 case EXT_EC_REF_QUAT_MI2S_TX:
4695 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4696 break;
4697 case EXT_EC_REF_QUIN_MI2S_TX:
4698 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4699 break;
4700 case EXT_EC_REF_SLIM_1_TX:
4701 ext_ec_ref_port_id = SLIMBUS_1_TX;
4702 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004703 case EXT_EC_REF_SEC_TDM_TX:
4704 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4705 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304706 case EXT_EC_REF_NONE:
4707 default:
4708 ext_ec_ref_port_id = AFE_PORT_INVALID;
4709 state = false;
4710 break;
4711 }
4712
4713 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4714 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4715
4716 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4717 mutex_unlock(&routing_lock);
4718 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4719 update);
4720 } else {
4721 ret = -EINVAL;
4722 mutex_unlock(&routing_lock);
4723 }
4724 return ret;
4725}
4726
4727static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4728 "SEC_MI2S_TX", "TERT_MI2S_TX",
4729 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004730 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304731
4732static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4733 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4734};
4735
4736static const struct snd_kcontrol_new voc_ext_ec_mux =
4737 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4738 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4739
4740
4741static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004774 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004778 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004782 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004786 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304818 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_PRI_I2S_RX,
4820 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304830};
4831
4832static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004861 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004865 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004869 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004873 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304909 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_SEC_I2S_RX,
4911 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921};
4922
Ralf Herzc8701f72018-06-20 11:37:35 +02004923static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004925 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004929 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004933 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004937 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004941 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004945 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004948 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004949 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004953 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004957 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004961 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004965 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004969 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004973 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004977 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004981 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004985 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004989 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004993 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004997 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305000 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5002 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005005 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005009 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5010 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
5012};
5013
5014static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
5015 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5016 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5017 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5018 msm_routing_put_audio_mixer),
5019 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5020 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5021 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5022 msm_routing_put_audio_mixer),
5023 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5024 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5025 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5026 msm_routing_put_audio_mixer),
5027 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5028 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5030 msm_routing_put_audio_mixer),
5031 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5033 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5036 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5037 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5038 msm_routing_put_audio_mixer),
5039 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5040 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5041 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5042 msm_routing_put_audio_mixer),
5043 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5044 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5046 msm_routing_put_audio_mixer),
5047 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5048 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5050 msm_routing_put_audio_mixer),
5051 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5053 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
5055 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5057 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
5059 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5061 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
5063 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5065 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
5067 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5069 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
5071 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5073 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
5075 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5077 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
5079 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5081 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
5083 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5085 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
5087 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5089 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305091 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5093 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02005095 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5097 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
5099 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103};
5104
5105static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005126 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5127 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005130 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5131 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305132 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005134 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5135 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305170 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_SLIMBUS_2_RX,
5172 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174};
5175
5176static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305253 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_SLIMBUS_5_RX,
5255 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265};
5266
5267static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005268 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5269 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305270 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005272 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5273 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005276 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5277 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305278 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005308 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5309 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305310 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305344 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_SLIMBUS_0_RX,
5346 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005348 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5349 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305350 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005352 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5353 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305354 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5355 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356};
5357
5358static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005359 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005363 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005367 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5368 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305369 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005371 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5372 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305435 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_MI2S_RX,
5437 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447};
5448
5449static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005498 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005502 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005522 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305526 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5528 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305538};
5539
5540static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005541 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005545 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005549 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305551 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005553 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305555 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005557 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005561 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305563 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005565 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5566 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005585 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305587 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005589 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305591 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005593 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005597 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305599 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005601 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305603 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005605 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305607 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005609 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305611 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005613 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305617 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5619 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005621 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305623 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005625 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305627 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
5629
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305630};
5631
Karthikeyan Manic3700752019-03-11 18:33:53 -07005632static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
5633 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
5637 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
5641 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5643 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
5645 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5647 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
5649 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
5653 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5654 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5655 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5656 msm_routing_put_audio_mixer),
5657 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5659 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
5661 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
5665 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5667 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
5669 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5670 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5671 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5672 msm_routing_put_audio_mixer),
5673 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5674 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5675 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5676 msm_routing_put_audio_mixer),
5677 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5678 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5679 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5680 msm_routing_put_audio_mixer),
5681 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5682 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5683 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5684 msm_routing_put_audio_mixer),
5685 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5686 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5687 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5688 msm_routing_put_audio_mixer),
5689 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5690 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5691 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5692 msm_routing_put_audio_mixer),
5693 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5695 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
5697 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5699 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
5701 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5703 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
5705 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5707 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
5709 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5711 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
5713 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5715 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
5717 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_SENARY_MI2S_RX,
5719 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
5721
5722};
5723
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005725 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005729 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305793 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5795 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805};
5806
5807static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005808 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812};
5813
5814static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005815 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305817 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005819 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305821 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005823 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005827 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305829 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005831 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305833 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005835 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305837 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005839 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305841 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005843 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305845 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005847 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305849 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005851 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305853 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005855 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305857 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005859 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305861 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005863 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305865 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005867 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305869 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005871 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305873 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005875 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305877 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005879 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305881 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005883 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305885 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005887 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305889 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305891 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5893 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005895 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305897 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005899 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305901 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305903};
5904
5905static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005906 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305908 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005910 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005914 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305916 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005918 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005926 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005930 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005934 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005938 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305940 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005950 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005954 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005958 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305960 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005962 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005966 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005970 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305972 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005974 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005978 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305980 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305982 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_PRI_MI2S_RX,
5984 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005986 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005990 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
5994
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305995};
5996
5997static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005998 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006002 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306004 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006006 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006010 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006014 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006018 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006022 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306024 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006026 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006030 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006034 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006038 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306040 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006042 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306044 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006046 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306048 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006050 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306052 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006054 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306056 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006058 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062};
6063
6064static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006065 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006069 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306071 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006073 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306075 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006077 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306079 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006081 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306083 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006085 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306087 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006089 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006093 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306095 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006097 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006101 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306103 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006105 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306107 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006109 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306111 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006113 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306115 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006117 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306119 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006121 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306123 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006125 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306127 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
6129};
6130
6131static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006132 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006136 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006140 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006144 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006148 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006152 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006156 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006160 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006164 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006168 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006172 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306174 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006176 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306178 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006180 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306182 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006184 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306186 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006188 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306190 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006192 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006196 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306198 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006200 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306202 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006204 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306208 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_HDMI_RX,
6210 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006212 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306214 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006216 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306218 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306220};
6221
6222static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006223 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006227 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006231 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006235 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006239 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006243 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306245 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006247 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306249 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006251 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306253 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006255 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306257 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006259 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306261 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006263 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306265 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006267 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306269 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006271 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306273 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006275 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306277 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006279 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306281 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006283 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306285 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306287 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
6289 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306291};
6292
Karthikeyan Mani57550082018-05-03 18:43:58 -07006293static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
6294 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
6298 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
6302 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
6310 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
6314 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6316 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
6318 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6320 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
6322 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
6326 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
6330 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
6334 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6336 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
6338 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6340 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
6342 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6344 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
6346 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6348 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
6350 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6352 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
6354 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306358 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
6360 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07006362};
6363
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306364 /* incall music delivery mixer */
6365static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006366 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006370 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6371 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006374 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6375 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006378 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6379 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306380 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6381 msm_routing_put_audio_mixer),
6382};
6383
6384static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006393 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306395 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006397 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306399 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
6401};
6402
6403static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006404 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306406 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006408 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006412 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306414 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006416 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306418 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
6420};
6421
6422static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006423 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006427 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306429 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006431 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306433 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006435 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306437 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006439 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006443 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306445 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006447 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006451 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006455 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006459 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006463 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306465 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006467 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306469 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006471 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306473 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006475 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306477 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006479 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306481 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006483 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306485 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306487 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6489 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306491};
6492
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306493static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6494 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6496 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
6498 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6500 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
6502 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6504 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
6506 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6508 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
6510 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6512 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
6514 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6516 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
6518 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6520 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
6522 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6524 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
6526 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6528 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
6530 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6532 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
6534 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6536 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
6538 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6540 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
6542 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6544 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
6546 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6548 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
6550 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6552 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
6554 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6556 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306558 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6560 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306562};
6563
6564static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6565 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6567 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
6569 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6571 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
6573 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6575 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
6577 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6579 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
6581 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
6585 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6587 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
6589 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6591 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6595 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6599 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6603 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6607 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6611 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6615 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6619 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6623 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
6625 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6627 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306629 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6631 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306633};
6634
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306635static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6636 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6638 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
6640 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6642 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
6644 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6646 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6650 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
6652 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6654 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
6656 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6658 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
6660 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6662 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
6664 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6666 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
6668 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6670 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
6672 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6674 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
6676 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6678 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
6680 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6682 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
6684 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6686 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
6688 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6690 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
6692 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6694 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
6696 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6698 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306700 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6702 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306704};
6705
6706static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6707 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6709 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
6711 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6713 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
6715 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
6719 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6721 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
6723 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
6727 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6729 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
6731 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6733 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
6735 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6737 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
6739 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
6743 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6745 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
6747 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6749 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
6751 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6753 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
6755 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6757 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
6759 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6761 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
6763 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6765 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
6767 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6769 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306771 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6773 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306775};
6776
6777static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6778 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6780 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
6782 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6784 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
6786 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6788 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
6790 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
6794 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6796 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
6798 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6800 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
6802 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6804 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
6806 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6808 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
6810 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6812 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
6814 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
6818 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6820 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
6822 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6824 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
6826 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6828 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
6830 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6832 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
6834 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6836 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
6838 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306842 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6844 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306846};
6847
6848static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6849 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
6853 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6855 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
6857 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6859 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
6861 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6863 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
6865 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6867 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
6869 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6871 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
6873 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6875 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
6877 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6879 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
6881 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6883 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
6885 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6887 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
6889 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6891 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
6893 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6895 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
6897 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6899 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
6901 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6903 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
6905 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6907 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
6909 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6911 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306913 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6915 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306917};
6918
6919static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6920 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6922 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
6924 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6926 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
6928 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6930 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
6932 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6934 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
6936 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6938 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
6940 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6942 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
6944 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6946 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
6948 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6950 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
6952 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6954 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
6956 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6958 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
6960 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6962 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
6964 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6966 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
6968 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6970 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
6972 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6974 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
6976 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6978 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
6980 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6982 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306984 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6986 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306988};
6989
6990static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6991 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6993 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
6995 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6997 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
6999 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7001 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
7003 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
7007 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7009 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
7011 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7013 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
7015 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7017 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
7019 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
7023 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
7027 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7029 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
7031 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7033 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
7035 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7037 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
7039 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7041 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
7043 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7045 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
7047 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7049 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
7051 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7053 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307055 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7057 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307059};
7060
7061static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
7062 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
7066 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7068 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
7070 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
7074 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
7078 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
7082 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
7086 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7088 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
7090 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
7094 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
7098 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
7102 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7104 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
7106 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7108 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
7110 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7112 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
7114 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7116 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
7118 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7120 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
7122 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307126 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7128 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307130};
7131
7132static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
7133 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
7137 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7139 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
7141 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
7145 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
7149 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
7153 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
7157 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7159 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
7161 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7163 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
7165 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
7169 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
7173 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7175 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
7177 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7179 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
7181 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7183 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
7185 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7187 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
7189 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7191 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
7193 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307197 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7199 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307201};
7202
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307203static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007240 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7241 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307242 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007244 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307246 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007248 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7249 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307250 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007252 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7253 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307254 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007256 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7257 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307258 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007260 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7261 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307262 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307268 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_SLIMBUS_7_RX,
7270 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272};
7273
Surendar Karka3ef3d812018-09-28 18:52:35 +05307274static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
7275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
7279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
7283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
7287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
7291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
7295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
7299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
7303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
7307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
7311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
7315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
7319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
7323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
7327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
7331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
7335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
7339 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_SLIMBUS_9_RX,
7341 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
7343};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007345 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307409 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_USB_RX,
7411 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307413};
7414
7415static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007416 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307492 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7494 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307504};
7505
7506static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307571 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7573 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307575};
7576
7577static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307654 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_INT_FM_RX,
7656 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307666};
7667
7668static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307745 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_AFE_PCM_RX,
7747 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007753 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307755 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757};
7758
7759static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007824 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7825 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307826 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007828 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307830 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007832 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307834 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007836 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_AUXPCM_RX,
7838 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307840 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_AUXPCM_RX,
7842 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007844 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307846 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007848 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307850 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852};
7853
7854static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007887 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307889 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007891 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307893 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007895 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307897 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007899 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307901 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007903 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307905 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007907 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307909 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007911 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307913 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007915 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007919 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307921 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007923 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307925 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007927 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307929 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007931 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7932 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7933 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7934 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307935 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7936 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7937 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007939 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7940 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307941 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007943 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947};
7948
7949static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007958 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307960 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007962 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007966 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007970 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307972 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007974 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307976 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007978 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007982 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307984 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007986 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007990 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307992 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007994 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307996 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007998 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308000 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008002 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8003 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308004 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008006 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8007 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308008 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008010 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8011 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308012 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8013 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308014 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
8016 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018};
8019
8020static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008029 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008033 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008037 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008041 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008045 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308047 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008049 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008053 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008057 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308059 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008061 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308063 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008065 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308067 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008069 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308071 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008073 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8074 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308075 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008077 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8078 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308079 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008081 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308085 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
8087 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089};
8090
Rohit Kumara5077932017-09-10 22:05:05 +05308091static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008100 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308102 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008104 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008108 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008112 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008116 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8117 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308118 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008120 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8121 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308122 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008124 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308126 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008128 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8129 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008132 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8133 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308134 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008136 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8137 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308138 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008140 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8141 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308142 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008144 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8145 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308146 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008148 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8149 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308150 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008152 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8153 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8155 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308156 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
8158 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308160};
Karthikeyan Manic3700752019-03-11 18:33:53 -07008161
8162static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
8163 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
8167 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8169 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
8171 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
8175 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8177 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
8179 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
8183 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
8187 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8189 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
8191 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
8195 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8197 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
8199 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
8203 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8205 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
8207 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8209 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
8211 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8213 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
8215 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8217 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
8219 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8220 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8221 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8222 msm_routing_put_audio_mixer),
8223 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8225 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
8227 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8229 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
8231};
8232
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008242 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008250 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008254 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008258 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008262 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008266 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008270 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008274 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008278 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008282 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008286 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008290 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008298 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_PRI_TDM_RX_0,
8300 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302};
8303
8304static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008313 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008317 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008325 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8326 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008329 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8330 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308331 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008333 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8334 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008337 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008341 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8342 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308343 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008345 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8346 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308347 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008349 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8350 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308351 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008353 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8354 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308355 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008357 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8358 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308359 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008361 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8362 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308363 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008369 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_PRI_TDM_RX_1,
8371 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373};
8374
8375static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8397 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8401 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8405 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8409 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8417 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8421 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8425 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8429 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008440 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_PRI_TDM_RX_2,
8442 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444};
8445
8446static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8468 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8472 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8476 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008511 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_PRI_TDM_RX_3,
8513 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515};
8516
8517static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008522 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008530 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008534 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8535 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308536 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008538 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8539 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008542 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8543 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308544 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008546 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8547 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308548 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008550 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8551 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308552 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008554 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008558 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8559 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308560 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008562 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8563 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308564 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008566 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
8582};
8583
8584static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008593 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308595 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008601 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008605 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8606 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308607 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008609 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8610 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308611 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008613 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8614 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008617 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8618 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308619 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008621 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8622 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308623 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008625 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8626 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008629 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308631 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008633 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8634 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308635 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008649 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8651 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653};
8654
8655static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008672 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308674 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008684 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308686 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008688 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8689 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008692 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8693 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308694 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008696 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8697 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008700 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8701 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308702 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008704 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308706 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008708 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8709 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308710 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008720 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8722 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724};
8725
8726static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008739 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008743 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008767 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008779 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008791 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8793 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795};
8796
8797static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008810 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308812 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008814 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008862 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8864 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866};
8867
8868static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008885 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308887 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
8933};
8934
8935static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008960 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308962 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008968 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308970 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008972 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308974 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009000 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_TERT_TDM_RX_0,
9002 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004};
9005
9006static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009031 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009035 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009039 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009043 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009047 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009051 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009055 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009059 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009063 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009067 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
9071};
9072
9073static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009138 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_TERT_TDM_RX_1,
9140 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142};
9143
9144static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA16, 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_TERT_TDM_RX_2,
9211 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213};
9214
9215static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009244 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009248 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309250 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009252 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009256 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9257 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309258 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009260 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9261 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309262 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009264 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9265 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309266 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009268 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309270 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009272 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9273 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309274 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009276 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9277 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9279 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009280 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9281 MSM_BACKEND_DAI_TERT_TDM_RX_3,
9282 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9283 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309284};
9285
9286static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009323 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009327 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009331 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009335 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009339 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309341 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009343 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009347 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009351 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_TERT_TDM_RX_4,
9353 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355};
9356
9357static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009426 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
9428 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430};
9431
9432static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009449 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309451 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009453 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009465 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309467 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009469 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309471 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009473 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309475 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009477 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309479 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009481 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309483 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009485 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309487 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009489 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309491 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009493 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
9497};
9498
9499static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009536 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009540 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009544 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009548 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009552 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009556 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009560 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009564 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009568 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9570 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309572};
9573
9574static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009627 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309629 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009631 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309633 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009635 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009639 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009643 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9645 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647};
9648
9649static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009718 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9720 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722};
9723
Rohit Kumara5077932017-09-10 22:05:05 +05309724static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009761 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009765 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009769 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309771 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009793 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9795 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309797};
9798
9799static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009840 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
9864};
9865
9866static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009903 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309905 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009907 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309909 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009911 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309913 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009915 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309917 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009919 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309921 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009923 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309925 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009927 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309929 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009931 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309933 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009935 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9937 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309939};
9940
9941static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009974 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309976 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009978 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009982 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309984 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009986 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9987 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309988 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009990 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309992 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009994 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309996 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010000 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010010 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
10012 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010014};
10015
10016static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010053 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010055 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010057 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010059 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010061 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010063 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010065 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010067 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010069 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010071 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010073 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010075 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010085 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
10087 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010089};
10090
Karthikeyan Manic3700752019-03-11 18:33:53 -070010091static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
10092 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10094 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
10096 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
10100 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10102 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
10104 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
10108 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
10112 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
10116 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10118 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
10120 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10122 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
10124 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10126 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
10128 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
10132 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10134 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
10136 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10138 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
10140 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10142 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
10144 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10146 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
10148 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10150 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
10152 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
10156 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10158 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
10160 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10162 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
10164};
10165
10166static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
10167 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10169 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
10171 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10173 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
10175 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
10179 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10181 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
10183 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10185 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
10187 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10189 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
10191 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10193 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
10195 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10197 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
10199 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10201 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
10203 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10205 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
10207 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10209 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
10211 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10213 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
10215 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10217 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
10219 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10221 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
10223 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10225 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
10227 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10229 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
10231};
10232
10233static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
10234 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
10238 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
10242 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10244 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
10246 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
10250 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
10254 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
10258 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10260 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
10262 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
10266 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10268 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
10270 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
10274 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10276 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
10278 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10280 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
10282 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10284 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
10286 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10288 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
10290 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10292 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
10294 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
10298 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10300 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
10302 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_SEN_TDM_RX_1,
10304 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
10306};
10307
10308static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
10309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
10313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
10317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
10321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
10325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
10329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
10333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
10337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
10341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
10345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
10349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
10353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
10357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
10361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
10365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
10369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
10373 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10375 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
10377 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_SEN_TDM_RX_2,
10379 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
10381};
10382
10383static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
10384 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10386 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
10388 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
10392 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10394 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
10396 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10398 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
10400 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10402 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
10404 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
10408 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10410 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
10412 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10414 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
10416 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10418 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
10420 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10422 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
10424 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10426 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
10428 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10430 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
10432 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10434 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
10436 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10438 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
10440 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10442 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
10444 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10446 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
10448 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10450 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
10452 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_SEN_TDM_RX_3,
10454 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
10456};
10457
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010458static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_PRI_MI2S_TX,
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("QUAT_MI2S_TX", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010495 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10497 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070010519 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
10521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010543 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010547 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010551 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010553 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070010555 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_SENARY_MI2S_TX,
10557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010565 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010569 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010575 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010577 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010579 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010583 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010585 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010587 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010589 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010591 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010593 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010595 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010597 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010599 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010601 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010603 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10604 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010607 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010611 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010613 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010615 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010617 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010619 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010621 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010623 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010627 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010629 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010631 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010635 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010637 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070010639 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10641 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10642 msm_routing_put_audio_mixer),
10643 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_SEN_TDM_TX_1,
10645 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
10647 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_SEN_TDM_TX_2,
10649 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
10651 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_SEN_TDM_TX_3,
10653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10666 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010667 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10669 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
10671 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10673 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
10675 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
10679 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10681 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
10683 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10685 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010687 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10689 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10693 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
10695 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10697 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
10699 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10701 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
10703 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10705 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
10707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10709 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
10711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010715 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10717 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
10719 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10721 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010723 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10725 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010727 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10729 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010731};
10732
10733static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010746 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010750 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010752 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010754 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010756 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070010782 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_SENARY_MI2S_TX,
10784 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010786 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010794 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010796 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010798 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010800 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010836 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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("QUAT_TDM_TX_3", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070010866 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10868 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
10870 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_SEN_TDM_TX_1,
10872 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
10874 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_SEN_TDM_TX_2,
10876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
10878 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_SEN_TDM_TX_3,
10880 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010890 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10892 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
10894 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10896 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
10898 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
10902 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
10906 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10908 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010910 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010914 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10916 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
10918 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10920 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
10922 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10924 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
10926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10928 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10929 msm_routing_put_audio_mixer),
10930 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10931 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10932 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10933 msm_routing_put_audio_mixer),
10934 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10936 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10937 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010938 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10940 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
10942 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10944 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010946 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10949 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010950 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10951 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010954};
10955
10956static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010961 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10963 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010965 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010985 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010987 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010989 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010991 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010993 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010995 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010997 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010999 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11000 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011001 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11003 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011005 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011007 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011009 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011011 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011013 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11014 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011015 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011017 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11018 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011019 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011021 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011023 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011025 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11026 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011027 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011029 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011033 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011035 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011037 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011039 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011041 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011043 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011045 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011047 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011049 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011051 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011053 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011055 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011057 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011059 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011061 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011063 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011065 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011067 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011069 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011071 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011073 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011075 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011077 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011079 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011081 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011083 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011085 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011089 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011091 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011093 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011097 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011099 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011101 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11103 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
11105 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11107 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
11109 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
11113 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11115 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
11121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11123 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
11125 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11127 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11128 msm_routing_put_audio_mixer),
11129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11131 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11132 msm_routing_put_audio_mixer),
11133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011137 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11139 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
11145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11147 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
11149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11152 msm_routing_put_audio_mixer),
11153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11155 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
11157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11159 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
11161 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11163 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011165 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11167 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
11169 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11171 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011173 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11175 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011177};
11178
11179static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011184 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11186 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011198 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011202 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011204 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011206 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011208 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011210 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011212 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011214 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011216 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011218 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011220 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011222 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011224 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011226 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011228 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011232 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011236 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011238 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011240 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11241 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011242 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011244 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11245 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011246 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011248 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011250 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011252 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011254 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011256 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011258 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011260 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11261 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011262 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011264 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11265 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011266 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011268 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011272 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11273 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011276 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011280 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11281 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011282 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011284 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11285 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011286 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011288 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11289 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011290 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11291 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011292 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11293 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11294 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11295 msm_routing_put_audio_mixer),
11296 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11298 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11299 msm_routing_put_audio_mixer),
11300 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11301 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11302 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11303 msm_routing_put_audio_mixer),
11304 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11305 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11306 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011308 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011312 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011314 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011316 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011318 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011320 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011324 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011328 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011330 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011332 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11334 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
11336 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11338 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
11340 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
11344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11346 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11347 msm_routing_put_audio_mixer),
11348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11350 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011352 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11354 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11358 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
11360 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11362 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11366 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11370 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
11372 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11374 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
11376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11378 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011380 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11382 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11386 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011388 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011392};
11393
11394static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011399 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011403 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011405 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011411 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011413 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011415 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011417 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011419 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011421 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011423 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011425 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011427 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011429 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011431 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011433 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011435 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011437 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011439 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011443 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011445 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011447 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011449 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011451 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011453 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011455 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011457 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011459 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011463 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011467 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011469 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011471 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011473 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011475 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011477 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011479 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011481 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011483 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011485 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011487 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011489 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011491 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11492 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011493 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011495 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011497 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011499 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011501 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011503 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11504 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011505 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011507 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011511 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11512 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011513 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011515 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011517 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011519 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011523 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011527 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011529 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011531 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11532 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011535 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11536 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011537 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11538 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011539 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11540 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11541 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
11543 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11545 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11546 msm_routing_put_audio_mixer),
11547 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11549 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11550 msm_routing_put_audio_mixer),
11551 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11552 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11553 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011555 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11556 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011557 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011559 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11560 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011561 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011563 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11564 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011567 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011569 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011571 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11572 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011573 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011575 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11578 msm_routing_put_audio_mixer),
11579 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11580 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11581 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
11583 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11585 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
11587 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11589 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
11591 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11593 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011595 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11598 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011599 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11600 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11601 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
11603 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11605 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
11607 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11609 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
11611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11613 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
11615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011623 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11625 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
11627 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11629 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011631 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11633 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011635 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11637 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011639};
11640
11641static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011650 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11652 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011660 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011662 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011664 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011666 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011668 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011670 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011672 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011674 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011676 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011682 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11684 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011694 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011696 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011698 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011700 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011702 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011704 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011706 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011708 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011710 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011714 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011716 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011718 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011722 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011724 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011726 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011728 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011730 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011732 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011734 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011736 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011738 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011740 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011742 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011744 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011746 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011748 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011758 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011762 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011766 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011768 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011770 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011772 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011774 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011776 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011778 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011780 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011782 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11784 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11792 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11796 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011798 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011800 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011802 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11808 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
11810 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
11814 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11820 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011822 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11824 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011826 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
11830 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11832 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
11838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11840 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
11842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11844 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11845 msm_routing_put_audio_mixer),
11846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11848 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11849 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011850 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11852 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11853 msm_routing_put_audio_mixer),
11854 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11855 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11857 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011858 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11861 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011862};
11863
11864static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011865 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011867 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011869 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011873 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011875 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011877 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011879 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011881 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011883 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011885 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011889 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011891 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011893 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011895 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011899 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011901 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011903 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011905 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011907 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011909 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011911 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011913 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11914 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011917 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011919 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011921 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11922 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011923 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011925 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11926 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011927 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011929 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011931 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011933 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11934 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011937 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11938 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011941 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11942 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011943 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011945 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11946 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011949 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11950 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011951 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011953 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11954 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011955 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011957 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11958 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011961 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011963 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011969 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011973 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11974 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011977 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11978 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011979 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011981 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11982 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011983 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011985 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011989 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011993 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11994 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011995 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011997 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11998 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12000 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012001 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12002 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12004 msm_routing_put_audio_mixer),
12005 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12008 msm_routing_put_audio_mixer),
12009 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12011 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
12013 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12015 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012025 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12027 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
12029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12031 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
12033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12035 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
12037 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12039 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
12041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012045 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
12053 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12055 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
12057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12059 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
12061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
12065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12067 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
12069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012073 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12075 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
12077 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12079 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012081 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12083 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012085 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12087 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089};
12090
Asish Bhattacharya34504582017-08-08 12:55:01 +053012091static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012094 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012096 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12098 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012100 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012106 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012112 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012116 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012120 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012124 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012128 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012130 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012132 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012134 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012136 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012140 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012144 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012146 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012148 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012152 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12157 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012158 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012162 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012164 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12165 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012174 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012176 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012178 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012180 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012182 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012184 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012188 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12189 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012190 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012192 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12193 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012196 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012200 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012204 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012208 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012212 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012214 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012216 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012220 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012222 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012224 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012226 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012228 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012230 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012232 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012234 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12235 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012236 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
12240 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
12244 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12246 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12250 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
12252 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12254 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012256 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12257 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12258 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12259 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012260 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12262 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12263 msm_routing_get_audio_mixer,
12264 msm_routing_put_audio_mixer),
12265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12267 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12268 msm_routing_get_audio_mixer,
12269 msm_routing_put_audio_mixer),
12270 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12273 msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
12275 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12277 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12278 msm_routing_get_audio_mixer,
12279 msm_routing_put_audio_mixer),
12280 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12283 msm_routing_get_audio_mixer,
12284 msm_routing_put_audio_mixer),
12285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12287 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
12288 msm_routing_get_audio_mixer,
12289 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012290 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12292 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12293 msm_routing_put_audio_mixer),
12294 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12297 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012298 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12300 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12301 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012302 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12305 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053012306};
12307
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12312 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012313 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12315 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012317 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012319 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012325 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_MULTIMEDIA9, 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_6_TX", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012345 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012347 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012349 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012351 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012357 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012359 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012379 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012381 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012385 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012387 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012391 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012393 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12395 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
12397 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12399 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
12401 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
12405 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12407 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012409 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12411 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
12413 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12415 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
12417 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12419 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
12421 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12423 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12424 msm_routing_put_audio_mixer),
12425 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12427 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12428 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012429 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12431 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12432 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012433 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12435 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12436 msm_routing_put_audio_mixer),
12437 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12439 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12440 msm_routing_put_audio_mixer),
12441 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12443 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12444 msm_routing_put_audio_mixer),
12445 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12447 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12448 msm_routing_put_audio_mixer),
12449 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12451 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12452 msm_routing_put_audio_mixer),
12453 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12455 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12456 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012457 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12460 msm_routing_put_audio_mixer),
12461 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12463 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12464 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012465 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12467 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12468 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012469};
12470
Laxminath Kasam38070be2017-08-17 18:21:59 +053012471static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012472 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012474 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12475 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012476 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012480 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012484 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012486 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012488 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012490 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012494 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012498 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012500 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012502 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012506 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070012510 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012514 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012518 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012522 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012526 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012530 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012532 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012534 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012538 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012542 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053012546 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012550 MSM_FRONTEND_DAI_MULTIMEDIA10, 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,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012554 MSM_FRONTEND_DAI_MULTIMEDIA10, 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,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012558 MSM_FRONTEND_DAI_MULTIMEDIA10, 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,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012562 MSM_FRONTEND_DAI_MULTIMEDIA10, 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,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012566 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012570 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012574 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070012578 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12579 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012580 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12582 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
12584 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
12588 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12590 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
12592 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12594 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12595 msm_routing_put_audio_mixer),
12596 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12598 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12599 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012600 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12602 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12603 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012604 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12606 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12607 msm_routing_get_audio_mixer,
12608 msm_routing_put_audio_mixer),
12609 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12610 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12611 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12612 msm_routing_get_audio_mixer,
12613 msm_routing_put_audio_mixer),
12614 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12615 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12617 msm_routing_get_audio_mixer,
12618 msm_routing_put_audio_mixer),
12619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12621 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12622 msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
12624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12626 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12627 msm_routing_get_audio_mixer,
12628 msm_routing_put_audio_mixer),
12629 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
12632 msm_routing_get_audio_mixer,
12633 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012634 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12635 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12637 msm_routing_put_audio_mixer),
12638 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12639 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12640 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12641 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012642 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12643 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12645 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012646 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12647 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12648 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12649 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053012650};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12655 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012656 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12657 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12658 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12661 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012662 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12665 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012666 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12669 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012670 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012672 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012674 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012676 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012678 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012680 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012682 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012684 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012686 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12687 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012688 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12690 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12691 msm_routing_put_audio_mixer),
12692 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12694 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12695 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012696 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12698 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12699 msm_routing_put_audio_mixer),
12700 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12701 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12702 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12703 msm_routing_put_audio_mixer),
12704 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12706 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12707 msm_routing_put_audio_mixer),
12708 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12710 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12711 msm_routing_put_audio_mixer),
12712 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12713 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12714 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12715 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012716 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12718 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12719 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12722 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12723 msm_routing_get_audio_mixer,
12724 msm_routing_put_audio_mixer),
12725 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12727 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12728 msm_routing_get_audio_mixer,
12729 msm_routing_put_audio_mixer),
12730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12732 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12733 msm_routing_get_audio_mixer,
12734 msm_routing_put_audio_mixer),
12735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12737 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12738 msm_routing_get_audio_mixer,
12739 msm_routing_put_audio_mixer),
12740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12742 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12743 msm_routing_get_audio_mixer,
12744 msm_routing_put_audio_mixer),
12745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12747 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
12748 msm_routing_get_audio_mixer,
12749 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012750 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12752 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12753 msm_routing_put_audio_mixer),
12754 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12756 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12757 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012758 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12760 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
12761 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762};
12763
12764static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12768 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012769 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12771 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012773 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012775 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012777 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012779 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12780 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012781 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12783 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12784 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012785 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12787 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012789 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012791 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012793 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012797 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12798 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012799 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012801 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012803 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012805 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012807 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012809 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012811 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12812 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012813 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12815 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12816 msm_routing_put_audio_mixer),
12817 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12819 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12820 msm_routing_put_audio_mixer),
12821 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12823 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12824 msm_routing_put_audio_mixer),
12825 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12827 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12828 msm_routing_put_audio_mixer),
12829 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12831 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12832 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012833 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12835 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12836 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12839 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12840 msm_routing_get_audio_mixer,
12841 msm_routing_put_audio_mixer),
12842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12844 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12845 msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
12847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12849 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12850 msm_routing_get_audio_mixer,
12851 msm_routing_put_audio_mixer),
12852 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12854 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12855 msm_routing_get_audio_mixer,
12856 msm_routing_put_audio_mixer),
12857 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12859 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12860 msm_routing_get_audio_mixer,
12861 msm_routing_put_audio_mixer),
12862 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12863 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12864 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
12865 msm_routing_get_audio_mixer,
12866 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012867 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12869 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12870 msm_routing_put_audio_mixer),
12871 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12873 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12874 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012875 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12877 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
12878 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879};
12880
12881static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012882 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012884 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12885 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012886 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12888 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012890 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012892 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012894 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012896 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012898 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012900 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012902 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012904 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012906 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012908 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012910 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012912 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012914 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012916 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12917 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012918 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12920 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12921 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012922 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12924 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12925 msm_routing_put_audio_mixer),
12926 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12928 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12929 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012930 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12932 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12933 msm_routing_put_audio_mixer),
12934 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12936 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12937 msm_routing_put_audio_mixer),
12938 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12940 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12941 msm_routing_put_audio_mixer),
12942 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12944 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12945 msm_routing_put_audio_mixer),
12946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12948 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12949 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012950 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12951 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12952 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12953 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12956 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12957 msm_routing_get_audio_mixer,
12958 msm_routing_put_audio_mixer),
12959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12961 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12962 msm_routing_get_audio_mixer,
12963 msm_routing_put_audio_mixer),
12964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12967 msm_routing_get_audio_mixer,
12968 msm_routing_put_audio_mixer),
12969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12971 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12972 msm_routing_get_audio_mixer,
12973 msm_routing_put_audio_mixer),
12974 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12976 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12977 msm_routing_get_audio_mixer,
12978 msm_routing_put_audio_mixer),
12979 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12981 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
12982 msm_routing_get_audio_mixer,
12983 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012984 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12986 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12987 msm_routing_put_audio_mixer),
12988 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12990 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12991 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012992 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12994 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12995 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996};
12997
12998static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013009 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013013 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013017 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13018 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013019 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13021 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013083 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013085 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013089 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013093 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013097 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13102 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013103 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13105 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13106 msm_routing_put_audio_mixer),
13107 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13109 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13110 msm_routing_put_audio_mixer),
13111 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13113 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13114 msm_routing_put_audio_mixer),
13115 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13117 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13118 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013119 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13121 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13122 msm_routing_put_audio_mixer),
13123 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13125 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13126 msm_routing_put_audio_mixer),
13127 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13129 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13130 msm_routing_put_audio_mixer),
13131 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13133 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13134 msm_routing_put_audio_mixer),
13135 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13137 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13138 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013139 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13141 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13142 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013143 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13145 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13146 msm_routing_put_audio_mixer),
13147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13149 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13150 msm_routing_put_audio_mixer),
13151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13153 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13154 msm_routing_put_audio_mixer),
13155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13157 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13158 msm_routing_put_audio_mixer),
13159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13161 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13162 msm_routing_put_audio_mixer),
13163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13165 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13166 msm_routing_put_audio_mixer),
13167 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13168 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13169 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13170 msm_routing_put_audio_mixer),
13171 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13173 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13174 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013175 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13177 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13178 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070013179};
13180
13181static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
13182 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_AUXPCM_TX,
13184 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13185 msm_routing_put_audio_mixer),
13186 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
13188 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13189 msm_routing_put_audio_mixer),
13190 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_PRI_TDM_TX_0,
13192 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13193 msm_routing_put_audio_mixer),
13194 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_PRI_TDM_TX_1,
13196 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13197 msm_routing_put_audio_mixer),
13198 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_PRI_TDM_TX_2,
13200 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13201 msm_routing_put_audio_mixer),
13202 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_PRI_TDM_TX_3,
13204 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13205 msm_routing_put_audio_mixer),
13206 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13207 MSM_BACKEND_DAI_SEC_TDM_TX_0,
13208 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13209 msm_routing_put_audio_mixer),
13210 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_SEC_TDM_TX_1,
13212 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13213 msm_routing_put_audio_mixer),
13214 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13215 MSM_BACKEND_DAI_SEC_TDM_TX_2,
13216 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13217 msm_routing_put_audio_mixer),
13218 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13219 MSM_BACKEND_DAI_SEC_TDM_TX_3,
13220 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13221 msm_routing_put_audio_mixer),
13222 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_TERT_TDM_TX_0,
13224 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13225 msm_routing_put_audio_mixer),
13226 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_TERT_TDM_TX_1,
13228 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13229 msm_routing_put_audio_mixer),
13230 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_TERT_TDM_TX_2,
13232 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13233 msm_routing_put_audio_mixer),
13234 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_TERT_TDM_TX_3,
13236 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13237 msm_routing_put_audio_mixer),
13238 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
13240 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13241 msm_routing_put_audio_mixer),
13242 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
13244 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13245 msm_routing_put_audio_mixer),
13246 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
13248 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13249 msm_routing_put_audio_mixer),
13250 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
13252 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13253 msm_routing_put_audio_mixer),
13254 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13255 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
13256 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13257 msm_routing_put_audio_mixer),
13258 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
13260 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13261 msm_routing_put_audio_mixer),
13262 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
13264 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13265 msm_routing_put_audio_mixer),
13266 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13267 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
13268 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13269 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013270 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13272 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13273 msm_routing_put_audio_mixer),
13274 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13275 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13276 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13277 msm_routing_put_audio_mixer),
13278 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13280 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13281 msm_routing_put_audio_mixer),
13282 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13283 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13284 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13285 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013286 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013287 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13288 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013289 msm_routing_put_audio_mixer),
13290 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013291 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13292 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013293 msm_routing_put_audio_mixer),
13294 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013295 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13296 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013297 msm_routing_put_audio_mixer),
13298 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013299 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13300 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013301 msm_routing_put_audio_mixer),
13302 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013303 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13304 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013305 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013306 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13308 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13309 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013310 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013311 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13312 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13313 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013314 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013315 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13316 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13317 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13320 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13321 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13324 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13325 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013326 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013327 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13328 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13329 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013330 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013331 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13332 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13333 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013334 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013336 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020013337 msm_routing_put_audio_mixer),
13338 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013340 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020013341 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013342 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13344 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13345 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013346};
13347
Surendar Karkac1cde372018-08-14 18:56:24 +053013348static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
13349 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_SLIMBUS_0_TX,
13351 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13352 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013353 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13355 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13356 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053013357 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SLIMBUS_6_TX,
13359 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13360 msm_routing_put_audio_mixer),
13361 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_SLIMBUS_7_TX,
13363 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13364 msm_routing_put_audio_mixer),
13365 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_PRI_MI2S_TX,
13367 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13368 msm_routing_put_audio_mixer),
13369 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13371 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13372 msm_routing_put_audio_mixer),
13373 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13375 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13376 msm_routing_put_audio_mixer),
13377 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13379 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13380 msm_routing_put_audio_mixer),
13381 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
13383 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13384 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013385 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13387 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13388 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053013389 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13391 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13392 msm_routing_put_audio_mixer),
13393 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13395 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13396 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013397 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13399 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13400 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013401 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13403 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
13404 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053013405};
13406
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013407static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013410 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13411 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013412 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13414 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013418 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013422 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013426 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013430 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013434 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013438 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013442 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13443 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010013444 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13446 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13447 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013448 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13450 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13451 msm_routing_put_audio_mixer),
13452 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13454 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13455 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013456 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13458 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13459 msm_routing_put_audio_mixer),
13460 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13462 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
13464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13466 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13467 msm_routing_put_audio_mixer),
13468 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13470 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13471 msm_routing_put_audio_mixer),
13472 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13474 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13478 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13482 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13483 msm_routing_get_audio_mixer,
13484 msm_routing_put_audio_mixer),
13485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13487 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13488 msm_routing_get_audio_mixer,
13489 msm_routing_put_audio_mixer),
13490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13492 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13493 msm_routing_get_audio_mixer,
13494 msm_routing_put_audio_mixer),
13495 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13497 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13498 msm_routing_get_audio_mixer,
13499 msm_routing_put_audio_mixer),
13500 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13502 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13503 msm_routing_get_audio_mixer,
13504 msm_routing_put_audio_mixer),
13505 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13507 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
13508 msm_routing_get_audio_mixer,
13509 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013510 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13511 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13512 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13513 msm_routing_put_audio_mixer),
13514 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13516 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13517 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013518 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13520 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
13521 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013522};
13523
13524static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013527 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13528 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013529 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13531 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013535 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013539 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013543 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013547 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013551 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013555 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013559 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13560 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010013561 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13563 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13564 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013565 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13567 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13568 msm_routing_put_audio_mixer),
13569 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13571 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13572 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013573 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13575 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13576 msm_routing_put_audio_mixer),
13577 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13580 msm_routing_put_audio_mixer),
13581 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13583 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13584 msm_routing_put_audio_mixer),
13585 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13587 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13588 msm_routing_put_audio_mixer),
13589 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13591 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13592 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013593 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13595 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13596 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013597 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13599 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13600 msm_routing_get_audio_mixer,
13601 msm_routing_put_audio_mixer),
13602 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13604 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13605 msm_routing_get_audio_mixer,
13606 msm_routing_put_audio_mixer),
13607 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13609 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13610 msm_routing_get_audio_mixer,
13611 msm_routing_put_audio_mixer),
13612 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13614 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13615 msm_routing_get_audio_mixer,
13616 msm_routing_put_audio_mixer),
13617 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13619 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13620 msm_routing_get_audio_mixer,
13621 msm_routing_put_audio_mixer),
13622 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13624 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
13625 msm_routing_get_audio_mixer,
13626 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013627 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13629 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
13631 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13633 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013635 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13637 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
13638 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013639};
13640
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013641static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013642 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013644 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13645 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013648 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013652 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13661 msm_routing_put_voice_mixer),
13662};
13663
13664static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013665 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013673 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13676 msm_routing_put_voice_mixer),
13677};
13678
13679static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013680 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13681 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013682 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13683 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013684 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13685 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
13686 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13687 msm_routing_put_voice_mixer),
13688 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13689 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
13690 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013692 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13693 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013694 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013696 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013698 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013700 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013702 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013704 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13707 msm_routing_put_voice_mixer),
13708};
13709
13710static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013711 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013713 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013715 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13718 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13730 msm_routing_put_voice_mixer),
13731};
13732
13733static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13735MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13739MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13743MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13747MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13751MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013752 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13753 msm_routing_put_voice_mixer),
13754};
13755
13756static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013757 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013759 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13760 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013761 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13764 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013765 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013767 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013769 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013771 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013773 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13774 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013775 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13776 msm_routing_put_voice_mixer),
13777};
13778
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013779static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13781MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013782 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13783 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13785MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013786 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13787 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013788 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13789MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013790 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13793MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013794 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13797MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080013798 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13799 msm_routing_put_voice_mixer),
13800};
13801
Karthikeyan Mani57550082018-05-03 18:43:58 -070013802static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
13803 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13805 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13806 msm_routing_put_voice_mixer),
13807 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13809 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13810 msm_routing_put_voice_mixer),
13811 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13813 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13814 msm_routing_put_voice_mixer),
13815 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13817 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13818 msm_routing_put_voice_mixer),
13819 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13821 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13822 msm_routing_put_voice_mixer),
13823};
13824
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013825static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13845 msm_routing_put_voice_mixer),
13846};
13847
13848static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13852 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013853 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_MI2S_RX,
13855 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13856 msm_routing_put_voice_mixer),
13857 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_MI2S_RX,
13859 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013861 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013863 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013865 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013867 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013871 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13872 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013873 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013875 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13876 msm_routing_put_voice_mixer),
13877};
13878
13879static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070013881 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13883 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013884 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_PRI_MI2S_RX,
13886 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13887 msm_routing_put_voice_mixer),
13888 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_PRI_MI2S_RX,
13890 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070013893 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13895 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070013897 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070013901 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13903 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070013905 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13907 msm_routing_put_voice_mixer),
13908};
13909
13910static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13912MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13916MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13920MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13922 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13924MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13926 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13928MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13930 msm_routing_put_voice_mixer),
13931};
13932
13933static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013938 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013940 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013946 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013948 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013950 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013952 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13953 msm_routing_put_voice_mixer),
13954};
13955
13956static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013957 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13960 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013961 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13962 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
13963 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13964 msm_routing_put_voice_mixer),
13965 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13966 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
13967 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13968 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013969 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13970 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013971 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13972 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013973 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13974 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013975 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13976 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13980 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013981 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013983 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13984 msm_routing_put_voice_mixer),
13985};
13986
13987static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13991 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070013992 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
13994 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
13995 msm_routing_put_voice_mixer),
13996 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
13998 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
13999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14007 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14015 msm_routing_put_voice_mixer),
14016};
14017
14018static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014019 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014021 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14022 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014023 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
14025 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14026 msm_routing_put_voice_stub_mixer),
14027 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
14029 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14046 msm_routing_put_voice_mixer),
14047};
14048
Karthikeyan Manic3700752019-03-11 18:33:53 -070014049static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
14050 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14052 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14053 msm_routing_put_voice_mixer),
14054 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14056 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14057 msm_routing_put_voice_mixer),
14058 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14059 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14060 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14061 msm_routing_put_voice_mixer),
14062 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14063 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14064 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14065 msm_routing_put_voice_mixer),
14066 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14067 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14068 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14069 msm_routing_put_voice_mixer),
14070};
14071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014073 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14074 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014075 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14076 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014077 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14078 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014079 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014081 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14082 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014083 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14084 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14088 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14092 msm_routing_put_voice_mixer),
14093};
14094
14095static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014096 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14097 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014098 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014104 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14105 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014106 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14111 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14115 msm_routing_put_voice_mixer),
14116};
14117
14118static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14120MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14124MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14128MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014129 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14132MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14134 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14136MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14138 msm_routing_put_voice_mixer),
14139};
14140
14141static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14143MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14147MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14151MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014154 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14155MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014156 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14159MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014160 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14161 msm_routing_put_voice_mixer),
14162};
14163
14164static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14166MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14168 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14170MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14172 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14174MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14176 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14178MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14180 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14182MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14184 msm_routing_put_voice_mixer),
14185};
14186
Rohit Kumara5077932017-09-10 22:05:05 +053014187static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14189MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014190 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14193MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014194 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14197MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014198 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14201MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014202 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014204 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14205MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014206 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14207 msm_routing_put_voice_mixer),
14208};
14209
Karthikeyan Manic3700752019-03-11 18:33:53 -070014210static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
14211 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14212 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14213 msm_routing_put_voice_mixer),
14214 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14215 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14216 msm_routing_put_voice_mixer),
14217 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14218 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14219 msm_routing_put_voice_mixer),
14220 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14221 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14222 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14223 msm_routing_put_voice_mixer),
14224 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14225 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14226 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14227 msm_routing_put_voice_mixer),
14228};
14229
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014230static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014237 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14242 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14246 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014249 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14250 msm_routing_put_voice_mixer),
14251};
14252
14253static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14255MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14259MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14263MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14265 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014266 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14267MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14269 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014270 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14271MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014272 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14273 msm_routing_put_voice_mixer),
14274};
14275
14276static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014277 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14278 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014279 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014285 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014287 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014291 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014293 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014295 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14296 msm_routing_put_voice_mixer),
14297};
14298
14299static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014300 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014302 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14303 msm_routing_put_voice_mixer),
14304};
14305
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014306static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
14307 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14309 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14310 msm_routing_put_voice_mixer),
14311 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14313 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14314 msm_routing_put_voice_mixer),
14315 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14317 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14318 msm_routing_put_voice_mixer),
14319 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14321 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14322 msm_routing_put_voice_mixer),
14323 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14325 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14326 msm_routing_put_voice_mixer),
14327};
14328
14329static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
14330 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14331 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
14332 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14333 msm_routing_put_voice_mixer),
14334 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
14336 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14337 msm_routing_put_voice_mixer),
14338 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
14340 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14341 msm_routing_put_voice_mixer),
14342 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
14344 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14345 msm_routing_put_voice_mixer),
14346 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
14348 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14349 msm_routing_put_voice_mixer),
14350};
14351
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014352static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
14353 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14355 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14356 msm_routing_put_voice_mixer),
14357 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14359 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14360 msm_routing_put_voice_mixer),
14361 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14363 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14364 msm_routing_put_voice_mixer),
14365 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14367 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14368 msm_routing_put_voice_mixer),
14369 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14371 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14372 msm_routing_put_voice_mixer),
14373};
14374
14375static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
14376 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
14378 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14379 msm_routing_put_voice_mixer),
14380 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
14382 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14383 msm_routing_put_voice_mixer),
14384 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
14386 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14387 msm_routing_put_voice_mixer),
14388 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
14390 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14391 msm_routing_put_voice_mixer),
14392 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
14394 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14395 msm_routing_put_voice_mixer),
14396};
14397
14398static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
14399 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
14401 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14402 msm_routing_put_voice_mixer),
14403 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
14405 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14406 msm_routing_put_voice_mixer),
14407 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
14409 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14410 msm_routing_put_voice_mixer),
14411 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
14413 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14414 msm_routing_put_voice_mixer),
14415 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
14417 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14418 msm_routing_put_voice_mixer),
14419};
14420
14421static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
14422 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
14424 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14425 msm_routing_put_voice_mixer),
14426 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
14428 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14429 msm_routing_put_voice_mixer),
14430 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
14432 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14433 msm_routing_put_voice_mixer),
14434 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
14436 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14437 msm_routing_put_voice_mixer),
14438 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
14440 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14441 msm_routing_put_voice_mixer),
14442};
14443
14444static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
14445 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
14447 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14448 msm_routing_put_voice_mixer),
14449 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
14451 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14452 msm_routing_put_voice_mixer),
14453 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
14455 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14456 msm_routing_put_voice_mixer),
14457 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
14459 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14460 msm_routing_put_voice_mixer),
14461 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14462 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
14463 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14464 msm_routing_put_voice_mixer),
14465};
14466
14467static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
14468 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
14470 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14471 msm_routing_put_voice_mixer),
14472 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
14474 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14475 msm_routing_put_voice_mixer),
14476 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
14478 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14479 msm_routing_put_voice_mixer),
14480 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
14482 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14483 msm_routing_put_voice_mixer),
14484 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
14486 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14487 msm_routing_put_voice_mixer),
14488};
14489
14490static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
14491 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
14493 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14494 msm_routing_put_voice_mixer),
14495 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
14497 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14498 msm_routing_put_voice_mixer),
14499 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
14501 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14502 msm_routing_put_voice_mixer),
14503 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
14505 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14506 msm_routing_put_voice_mixer),
14507 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
14509 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14510 msm_routing_put_voice_mixer),
14511};
14512
14513static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
14514 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
14516 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14517 msm_routing_put_voice_mixer),
14518 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14519 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
14520 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14521 msm_routing_put_voice_mixer),
14522 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
14524 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14525 msm_routing_put_voice_mixer),
14526 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
14528 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14529 msm_routing_put_voice_mixer),
14530 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
14532 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14533 msm_routing_put_voice_mixer),
14534};
14535
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053014536static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
14537 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14539 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14540 msm_routing_put_voice_mixer),
14541 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14543 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14544 msm_routing_put_voice_stub_mixer),
14545 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14547 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14548 msm_routing_put_voice_stub_mixer),
14549 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14551 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
14552 msm_routing_put_voice_mixer),
14553 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14555 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14556 msm_routing_put_voice_mixer),
14557 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14559 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14560 msm_routing_put_voice_mixer),
14561 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14563 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14564 msm_routing_put_voice_mixer),
14565 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_PRI_TDM_RX_0,
14567 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14568 msm_routing_put_voice_mixer),
14569};
14570
14571static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
14572 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14574 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14575 msm_routing_put_voice_mixer),
14576 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14578 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14579 msm_routing_put_voice_stub_mixer),
14580 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14582 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14583 msm_routing_put_voice_stub_mixer),
14584 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14586 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
14587 msm_routing_put_voice_mixer),
14588 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14590 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14591 msm_routing_put_voice_mixer),
14592 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14594 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14595 msm_routing_put_voice_mixer),
14596 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14598 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14599 msm_routing_put_voice_mixer),
14600 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_PRI_TDM_RX_1,
14602 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14603 msm_routing_put_voice_mixer),
14604};
14605
14606static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
14607 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14608 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14609 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14610 msm_routing_put_voice_mixer),
14611 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14613 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14614 msm_routing_put_voice_stub_mixer),
14615 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14616 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14617 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14618 msm_routing_put_voice_stub_mixer),
14619 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
14620 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14621 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
14622 msm_routing_put_voice_mixer),
14623 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14625 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14626 msm_routing_put_voice_mixer),
14627 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14628 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14629 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14630 msm_routing_put_voice_mixer),
14631 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14633 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14634 msm_routing_put_voice_mixer),
14635 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_PRI_TDM_RX_2,
14637 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14638 msm_routing_put_voice_mixer),
14639};
14640
14641static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
14642 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14643 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14644 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14645 msm_routing_put_voice_mixer),
14646 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14648 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14649 msm_routing_put_voice_stub_mixer),
14650 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14652 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14653 msm_routing_put_voice_stub_mixer),
14654 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14656 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
14657 msm_routing_put_voice_mixer),
14658 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14660 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14661 msm_routing_put_voice_mixer),
14662 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14664 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14665 msm_routing_put_voice_mixer),
14666 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14668 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14669 msm_routing_put_voice_mixer),
14670 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_PRI_TDM_RX_3,
14672 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14673 msm_routing_put_voice_mixer),
14674};
14675
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014676static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014679 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014683 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14684 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685};
14686
14687static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014690 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014692 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014694 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14695 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014696};
14697
14698static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014699 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14700 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014701 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14702 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080014705 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14706 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014707};
14708
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014709static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014710 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014712 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014714 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014716 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14717 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014718 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14720 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014722 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14723 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014724 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014725 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
14726 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014727 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
14729 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014730 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014731 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14732 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14735 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014737 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14738 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014739 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053014740 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14741 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014742 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14744 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014746 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
14747 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014748 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014749 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
14750 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014752 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
14753 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014755 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14756 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
14759 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014760 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
14761 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014762 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14763 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
14765MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014766 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014767 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
14768 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
14769 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14770 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
14771 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
14772 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014773 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
14775 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014776 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
14778 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14779 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
14780 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
14781 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14782 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
14783 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
14784 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14785 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
14787 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14788 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
14790 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14791 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
14793 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053014794 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
14796 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14797 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
14799 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070014800 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053014801 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
14802 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014803};
14804
14805static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014808 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014810 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
14811 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014812 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14813 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014815 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14816 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014818 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14819 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014820 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
14822 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014823 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014824 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
14825 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014826 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14828 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014830 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14831 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014832 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014833 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14834 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014835 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053014836 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14837 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014838 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
14839 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14840 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014842 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
14843 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014845 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
14846 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014847 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014848 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
14849 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014850 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14852 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014853 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014854 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14855 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014856 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014857 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
14858 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014859 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
14861 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14862 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
14863 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
14864 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014865 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
14867 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014868 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
14870 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14871 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
14873 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14874 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
14876 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14877 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
14878 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
14879 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14880 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
14882 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14883 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
14885 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053014886 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
14887 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
14888 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14889 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
14891 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070014892 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053014894 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895};
14896
14897static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014898 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014900 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14901 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14905 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014906 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
14907 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014908 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14909 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014910 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
14911 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014912 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14913 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014916 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14917 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14925 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014926 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014928 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014930 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014932 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
14935 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014936 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14937 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014938 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
14940 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014946 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
14947 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014948 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
14951 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014952 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14953 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014954 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
14955 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014956 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14957 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014958 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014960 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14961 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14965 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014966 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
14967 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
14968 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14969 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
14970 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
14971 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014972 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
14974 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
14976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
14977 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14978 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
14980 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14981 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
14982 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
14983 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14984 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
14986 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14987 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
14989 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14990 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
14992 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053014993 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
14994 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14995 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014996};
14997
14998static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014999 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15000 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015001 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15002 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015003 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15006 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015009 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15010 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015011 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15014 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15018 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015019 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015021 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15022 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015025 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15026 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015027 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015029 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015031 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015039 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015041 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15042 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015043 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015045 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15046 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015047 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015049 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15050 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015051 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015053 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15054 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015055 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15057 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15058 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015059 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015061 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15062 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015063 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015065 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15066 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015067 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015069 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15070 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15078 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
15081 1, 0, msm_routing_get_voice_stub_mixer,
15082 msm_routing_put_voice_stub_mixer),
15083 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
15085 1, 0, msm_routing_get_voice_stub_mixer,
15086 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015087 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
15089 1, 0, msm_routing_get_voice_stub_mixer,
15090 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
15093 1, 0, msm_routing_get_voice_stub_mixer,
15094 msm_routing_put_voice_stub_mixer),
15095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
15097 1, 0, msm_routing_get_voice_stub_mixer,
15098 msm_routing_put_voice_stub_mixer),
15099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
15101 1, 0, msm_routing_get_voice_stub_mixer,
15102 msm_routing_put_voice_stub_mixer),
15103 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
15105 1, 0, msm_routing_get_voice_stub_mixer,
15106 msm_routing_put_voice_stub_mixer),
15107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
15109 1, 0, msm_routing_get_voice_stub_mixer,
15110 msm_routing_put_voice_stub_mixer),
15111 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
15113 1, 0, msm_routing_get_voice_stub_mixer,
15114 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015115};
15116
15117static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015118 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015120 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15121 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015122 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015124 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15125 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015126 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015128 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15129 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015130 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015132 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15133 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15137 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15141 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015142 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015144 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15145 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015146 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015148 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15149 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015150 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15152 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15153 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15157 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15161 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015162 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015164 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15165 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15169 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015170 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015172 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15173 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015174 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15176 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15177 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15181 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015182 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015184 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15185 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015186 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
15188 1, 0, msm_routing_get_voice_stub_mixer,
15189 msm_routing_put_voice_stub_mixer),
15190 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
15192 1, 0, msm_routing_get_voice_stub_mixer,
15193 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015194 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
15196 1, 0, msm_routing_get_voice_stub_mixer,
15197 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015198 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
15200 1, 0, msm_routing_get_voice_stub_mixer,
15201 msm_routing_put_voice_stub_mixer),
15202 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
15204 1, 0, msm_routing_get_voice_stub_mixer,
15205 msm_routing_put_voice_stub_mixer),
15206 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
15208 1, 0, msm_routing_get_voice_stub_mixer,
15209 msm_routing_put_voice_stub_mixer),
15210 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
15212 1, 0, msm_routing_get_voice_stub_mixer,
15213 msm_routing_put_voice_stub_mixer),
15214 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
15216 1, 0, msm_routing_get_voice_stub_mixer,
15217 msm_routing_put_voice_stub_mixer),
15218 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
15220 1, 0, msm_routing_get_voice_stub_mixer,
15221 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222};
15223
15224static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15228 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15232 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15236 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15240 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15244 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015245 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015247 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15248 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015249 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015251 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15252 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015253 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015255 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15256 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015257 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15259 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15260 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015261 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15264 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015265 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
15266 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015267 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15268 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015269 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15270 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15272 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015273 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15274 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015275 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15276 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15280 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15284 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015285 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15286 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015287 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15288 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015289 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
15291 1, 0, msm_routing_get_voice_stub_mixer,
15292 msm_routing_put_voice_stub_mixer),
15293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
15295 1, 0, msm_routing_get_voice_stub_mixer,
15296 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015297 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
15299 1, 0, msm_routing_get_voice_stub_mixer,
15300 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
15303 1, 0, msm_routing_get_voice_stub_mixer,
15304 msm_routing_put_voice_stub_mixer),
15305 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
15307 1, 0, msm_routing_get_voice_stub_mixer,
15308 msm_routing_put_voice_stub_mixer),
15309 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
15311 1, 0, msm_routing_get_voice_stub_mixer,
15312 msm_routing_put_voice_stub_mixer),
15313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
15315 1, 0, msm_routing_get_voice_stub_mixer,
15316 msm_routing_put_voice_stub_mixer),
15317 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
15319 1, 0, msm_routing_get_voice_stub_mixer,
15320 msm_routing_put_voice_stub_mixer),
15321 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
15323 1, 0, msm_routing_get_voice_stub_mixer,
15324 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325};
15326
15327static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015330 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15331 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15338 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15343 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015344 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15347 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15351 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015354 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15355 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015356 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015358 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15359 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015360 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015362 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15363 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015364 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15366 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15367 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015368 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015370 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15371 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015372 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015374 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15375 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015376 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
15377 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015378 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15379 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015382 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15383 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15387 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015388 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
15389 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015390 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15391 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015392 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
15393 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015394 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15395 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015396 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
15398 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15399 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
15401 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
15404 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
15407 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
15409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
15410 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
15412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
15413 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
15416 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
15419 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
15422 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423};
15424
15425static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015432 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015436 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015438 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015442 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015444 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15445 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015446 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_INT0_MI2S_RX,
15448 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015456 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015462 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15463 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015464 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
15465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015466 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015468 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015470 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_INT0_MI2S_RX,
15472 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
15473 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015474};
15475
15476static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015477 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015479 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015483 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015487 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015489 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15490 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015491 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015495 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15496 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015497 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_INT4_MI2S_RX,
15499 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015501 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15502 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015503 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015507 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015519 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15520 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015521 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15522 MSM_BACKEND_DAI_INT4_MI2S_RX,
15523 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
15524 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525};
15526
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053015527static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
15528 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15530 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
15531 msm_routing_put_port_mixer),
15532 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
15535 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080015536 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15538 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15539 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080015540 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15542 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053015544};
15545
15546static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
15547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15548 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
15550 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080015551 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15552 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15553 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15554 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015555 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080015556 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053015557 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080015559 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
15563
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053015564};
15565
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015567 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015569 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015575 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15576 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015577 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015587 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015589 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015601 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015605 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15606 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015607 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_SLIMBUS_0_RX,
15609 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015633 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15634 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015635 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15636 MSM_BACKEND_DAI_SLIMBUS_0_RX,
15637 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015639 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15640 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015641 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015643 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
15644 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015645 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015655 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
15656 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015657 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
15660 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053015661 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15662 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015663 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
15664 MSM_BACKEND_DAI_SLIMBUS_0_RX,
15665 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015667 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
15669 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053015670 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671};
15672
15673static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015678 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15679 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015680 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15691 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015692 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015696 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15697 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053015698 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_AUXPCM_RX,
15700 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
15701 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015702};
15703
15704static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015707 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15710 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015715 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015719 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15720 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721};
15722
15723static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015728 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15729 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015730 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015732 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15733 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015734 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15735 msm_routing_put_port_mixer),
15736};
15737
15738static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015743 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15744 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015745 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015747 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15748 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015749 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15750 msm_routing_put_port_mixer),
15751};
15752
Rohit Kumara5077932017-09-10 22:05:05 +053015753static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015756 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015758 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15759 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015760 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015762 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15763 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015764 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15765 msm_routing_put_port_mixer),
15766};
15767
Karthikeyan Manic3700752019-03-11 18:33:53 -070015768static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
15769 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15771 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15772 msm_routing_put_port_mixer),
15773 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15775 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15776 msm_routing_put_port_mixer),
15777 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15779 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15780 msm_routing_put_port_mixer),
15781};
15782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015783static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015788 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15789 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015790 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
15791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015792 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15793 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015794 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015796 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15797 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015798 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015800 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015802 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015806 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15807 msm_routing_put_port_mixer),
15808};
15809
15810static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015811 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
15812 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015813 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
15814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015815 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015817 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015819 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015821 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
15822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015825 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
15826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
15830 msm_routing_put_port_mixer),
15831};
15832
15833static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015846 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15847 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015848 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015852 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015854 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15855 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015856 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015866 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15867 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015868 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015870 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15871 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015872 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015874 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15875 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015876 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015882 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_SLIMBUS_6_RX,
15884 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
15885 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015886};
15887
15888static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015889 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15890 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015891 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
15897};
15898
15899static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15901 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015902 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015904 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15905 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015906 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15907 msm_routing_put_port_mixer),
15908};
15909
15910
15911static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15915 msm_routing_put_port_mixer),
15916};
15917
15918static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015919 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15920 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015921 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15922 msm_routing_put_port_mixer),
15923};
15924
Karthikeyan Mani57550082018-05-03 18:43:58 -070015925static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
15926 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15928 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15929 msm_routing_put_port_mixer),
15930};
15931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015935 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
15937};
15938
15939static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015942 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
15943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015944 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15945 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015946 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
15948};
15949
15950static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015953 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015957 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015959 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15960 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015961 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015965 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015967 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15968 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015969 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
15970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015973 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15978 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015979 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15980 MSM_BACKEND_DAI_PRI_MI2S_RX,
15981 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15984 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015985 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015987 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15988 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015989 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015993 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995};
15996
15997static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016000 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
16001 msm_routing_put_port_mixer),
16002};
16003
16004static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016007 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016009 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016011 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016015 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016017 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16018 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016019 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016021 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016023 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16030 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016031 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016035 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16036 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016037 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16038 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
16039 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16042 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016043 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16044 msm_routing_put_port_mixer),
16045};
16046
Rohit Kumara5077932017-09-10 22:05:05 +053016047static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016050 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016052 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016054 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016058 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016060 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16061 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016062 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016064 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16065 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016066 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016068 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
16070 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016072 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16073 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016074 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016076 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16077 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016078 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16079 msm_routing_put_port_mixer),
16080};
16081
Karthikeyan Manic3700752019-03-11 18:33:53 -070016082static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
16083 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16085 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16086 msm_routing_put_port_mixer),
16087 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16088 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16089 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16090 msm_routing_put_port_mixer),
16091 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16093 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16094 msm_routing_put_port_mixer),
16095 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16096 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16097 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16098 msm_routing_put_port_mixer),
16099 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16101 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
16103 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16105 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16106 msm_routing_put_port_mixer),
16107 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16108 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16109 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
16111 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16113 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16114 msm_routing_put_port_mixer),
16115};
16116
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16126 msm_routing_get_port_mixer,
16127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016130 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16131 msm_routing_get_port_mixer,
16132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016133 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16136 msm_routing_get_port_mixer,
16137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16141 msm_routing_get_port_mixer,
16142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016143 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16144 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016145 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16146 msm_routing_get_port_mixer,
16147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16151 msm_routing_get_port_mixer,
16152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016155 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16156 msm_routing_get_port_mixer,
16157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016158 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
16159 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016160 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
16161 msm_routing_get_port_mixer,
16162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016163 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016165 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
16166 msm_routing_get_port_mixer,
16167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016168 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
16169 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016170 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
16171 msm_routing_get_port_mixer,
16172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016173 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
16174 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016175 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
16176 msm_routing_get_port_mixer,
16177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016178 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16179 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016180 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16181 msm_routing_get_port_mixer,
16182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016183 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16186 msm_routing_get_port_mixer,
16187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016188 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016190 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16191 msm_routing_get_port_mixer,
16192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016193 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16194 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016195 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16196 msm_routing_get_port_mixer,
16197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016198 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16199 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016200 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16201 msm_routing_get_port_mixer,
16202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016203 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16204 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016205 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16206 msm_routing_get_port_mixer,
16207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016210 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16211 msm_routing_get_port_mixer,
16212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016213 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16214 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016215 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16216 msm_routing_get_port_mixer,
16217 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016218 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16220 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16221 msm_routing_get_port_mixer,
16222 msm_routing_put_port_mixer),
16223 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16224 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16225 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16226 msm_routing_get_port_mixer,
16227 msm_routing_put_port_mixer),
16228 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16229 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16230 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16231 msm_routing_get_port_mixer,
16232 msm_routing_put_port_mixer),
16233 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16234 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16235 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16236 msm_routing_get_port_mixer,
16237 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016238};
16239
16240static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16244 msm_routing_get_port_mixer,
16245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16249 msm_routing_get_port_mixer,
16250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016253 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16254 msm_routing_get_port_mixer,
16255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016256 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16257 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016258 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16259 msm_routing_get_port_mixer,
16260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016263 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16264 msm_routing_get_port_mixer,
16265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016266 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16267 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016268 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16269 msm_routing_get_port_mixer,
16270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016271 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16272 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016273 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16274 msm_routing_get_port_mixer,
16275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016276 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16277 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016278 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16279 msm_routing_get_port_mixer,
16280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016281 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
16282 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016283 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
16284 msm_routing_get_port_mixer,
16285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016286 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
16287 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016288 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
16289 msm_routing_get_port_mixer,
16290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016291 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016293 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
16294 msm_routing_get_port_mixer,
16295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016296 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016298 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
16299 msm_routing_get_port_mixer,
16300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016301 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16302 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016303 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16304 msm_routing_get_port_mixer,
16305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016306 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016308 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16309 msm_routing_get_port_mixer,
16310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016311 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16312 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016313 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16314 msm_routing_get_port_mixer,
16315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016316 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16317 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016318 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16319 msm_routing_get_port_mixer,
16320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016321 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16322 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016323 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16324 msm_routing_get_port_mixer,
16325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016326 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16327 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016328 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16329 msm_routing_get_port_mixer,
16330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016331 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016333 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16334 msm_routing_get_port_mixer,
16335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016336 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16337 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016338 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16339 msm_routing_get_port_mixer,
16340 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016341 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16343 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16344 msm_routing_get_port_mixer,
16345 msm_routing_put_port_mixer),
16346 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16347 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16348 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16349 msm_routing_get_port_mixer,
16350 msm_routing_put_port_mixer),
16351 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16352 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16353 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16354 msm_routing_get_port_mixer,
16355 msm_routing_put_port_mixer),
16356 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16357 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16358 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16359 msm_routing_get_port_mixer,
16360 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361};
16362
16363static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016364 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16365 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016366 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16367 msm_routing_get_port_mixer,
16368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016369 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16370 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016371 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16372 msm_routing_get_port_mixer,
16373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016374 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16375 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016376 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16377 msm_routing_get_port_mixer,
16378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016379 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016381 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16382 msm_routing_get_port_mixer,
16383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016384 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16385 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016386 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16387 msm_routing_get_port_mixer,
16388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016389 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16390 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016391 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16392 msm_routing_get_port_mixer,
16393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016394 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016396 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16397 msm_routing_get_port_mixer,
16398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016399 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016401 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16402 msm_routing_get_port_mixer,
16403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016404 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
16405 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016406 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
16407 msm_routing_get_port_mixer,
16408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016409 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
16410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016411 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
16412 msm_routing_get_port_mixer,
16413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016414 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016416 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
16417 msm_routing_get_port_mixer,
16418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016419 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016421 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
16422 msm_routing_get_port_mixer,
16423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016424 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16425 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016426 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16427 msm_routing_get_port_mixer,
16428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016429 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016431 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16432 msm_routing_get_port_mixer,
16433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016434 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16435 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016436 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16437 msm_routing_get_port_mixer,
16438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016439 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16440 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016441 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16442 msm_routing_get_port_mixer,
16443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016444 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016446 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16447 msm_routing_get_port_mixer,
16448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016451 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16452 msm_routing_get_port_mixer,
16453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016454 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016456 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16457 msm_routing_get_port_mixer,
16458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016459 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016461 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16462 msm_routing_get_port_mixer,
16463 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016464 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16465 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16466 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16467 msm_routing_get_port_mixer,
16468 msm_routing_put_port_mixer),
16469 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16471 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16472 msm_routing_get_port_mixer,
16473 msm_routing_put_port_mixer),
16474 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16475 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16476 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16477 msm_routing_get_port_mixer,
16478 msm_routing_put_port_mixer),
16479 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16481 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16482 msm_routing_get_port_mixer,
16483 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016484};
16485
16486static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016487 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16488 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016489 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16490 msm_routing_get_port_mixer,
16491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016494 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16495 msm_routing_get_port_mixer,
16496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16498 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016499 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16500 msm_routing_get_port_mixer,
16501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016502 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16503 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016504 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16505 msm_routing_get_port_mixer,
16506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16508 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016509 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16510 msm_routing_get_port_mixer,
16511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016514 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16515 msm_routing_get_port_mixer,
16516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016517 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016519 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16520 msm_routing_get_port_mixer,
16521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16525 msm_routing_get_port_mixer,
16526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016527 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
16528 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016529 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
16530 msm_routing_get_port_mixer,
16531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016532 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
16533 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016534 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
16535 msm_routing_get_port_mixer,
16536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016537 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016539 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
16540 msm_routing_get_port_mixer,
16541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016542 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016544 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
16545 msm_routing_get_port_mixer,
16546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016547 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16550 msm_routing_get_port_mixer,
16551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016552 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016554 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16555 msm_routing_get_port_mixer,
16556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016557 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16558 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016559 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16560 msm_routing_get_port_mixer,
16561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016562 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16563 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016564 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16565 msm_routing_get_port_mixer,
16566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016567 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16568 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016569 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16570 msm_routing_get_port_mixer,
16571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016572 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16573 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016574 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16575 msm_routing_get_port_mixer,
16576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016579 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16580 msm_routing_get_port_mixer,
16581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016582 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16583 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016584 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16585 msm_routing_get_port_mixer,
16586 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016587 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16589 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16590 msm_routing_get_port_mixer,
16591 msm_routing_put_port_mixer),
16592 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16593 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16594 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16595 msm_routing_get_port_mixer,
16596 msm_routing_put_port_mixer),
16597 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16599 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16600 msm_routing_get_port_mixer,
16601 msm_routing_put_port_mixer),
16602 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16604 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16605 msm_routing_get_port_mixer,
16606 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016607};
16608
16609static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016610 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016612 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16613 msm_routing_get_port_mixer,
16614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016615 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16616 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016617 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16618 msm_routing_get_port_mixer,
16619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016620 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16621 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016622 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16623 msm_routing_get_port_mixer,
16624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016625 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16626 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016627 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16628 msm_routing_get_port_mixer,
16629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016630 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016632 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16633 msm_routing_get_port_mixer,
16634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016635 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16636 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016637 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16638 msm_routing_get_port_mixer,
16639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016640 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16641 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016642 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16643 msm_routing_get_port_mixer,
16644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016647 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16648 msm_routing_get_port_mixer,
16649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016650 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
16651 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016652 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
16653 msm_routing_get_port_mixer,
16654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016655 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
16656 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016657 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
16658 msm_routing_get_port_mixer,
16659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016660 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016662 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
16663 msm_routing_get_port_mixer,
16664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016665 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016667 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
16668 msm_routing_get_port_mixer,
16669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016670 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16671 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016672 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16673 msm_routing_get_port_mixer,
16674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16678 msm_routing_get_port_mixer,
16679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016680 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16681 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016682 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16683 msm_routing_get_port_mixer,
16684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16686 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016687 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16688 msm_routing_get_port_mixer,
16689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016690 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016692 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16693 msm_routing_get_port_mixer,
16694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016695 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16696 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016697 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16698 msm_routing_get_port_mixer,
16699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016702 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16703 msm_routing_get_port_mixer,
16704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016707 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16708 msm_routing_get_port_mixer,
16709 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016710 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_SEC_TDM_RX_0,
16712 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16713 msm_routing_get_port_mixer,
16714 msm_routing_put_port_mixer),
16715 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16716 MSM_BACKEND_DAI_SEC_TDM_RX_0,
16717 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16718 msm_routing_get_port_mixer,
16719 msm_routing_put_port_mixer),
16720 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_SEC_TDM_RX_0,
16722 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16723 msm_routing_get_port_mixer,
16724 msm_routing_put_port_mixer),
16725 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_SEC_TDM_RX_0,
16727 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16728 msm_routing_get_port_mixer,
16729 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016730};
16731
16732static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016733 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016735 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16736 msm_routing_get_port_mixer,
16737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016738 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016740 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16741 msm_routing_get_port_mixer,
16742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016743 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016745 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16746 msm_routing_get_port_mixer,
16747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016748 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16749 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016750 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16751 msm_routing_get_port_mixer,
16752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016753 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016755 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16756 msm_routing_get_port_mixer,
16757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016758 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016760 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16761 msm_routing_get_port_mixer,
16762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016763 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16764 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016765 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16766 msm_routing_get_port_mixer,
16767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16771 msm_routing_get_port_mixer,
16772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016773 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016775 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
16776 msm_routing_get_port_mixer,
16777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016778 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
16779 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016780 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
16781 msm_routing_get_port_mixer,
16782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016783 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
16784 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
16786 msm_routing_get_port_mixer,
16787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016788 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016790 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
16791 msm_routing_get_port_mixer,
16792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16796 msm_routing_get_port_mixer,
16797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016798 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16799 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016800 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16801 msm_routing_get_port_mixer,
16802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16806 msm_routing_get_port_mixer,
16807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016808 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16809 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016810 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16811 msm_routing_get_port_mixer,
16812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016813 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016815 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16816 msm_routing_get_port_mixer,
16817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016820 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16821 msm_routing_get_port_mixer,
16822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016825 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16826 msm_routing_get_port_mixer,
16827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016828 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16829 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016830 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16831 msm_routing_get_port_mixer,
16832 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016833 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_SEC_TDM_RX_1,
16835 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16836 msm_routing_get_port_mixer,
16837 msm_routing_put_port_mixer),
16838 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_SEC_TDM_RX_1,
16840 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16841 msm_routing_get_port_mixer,
16842 msm_routing_put_port_mixer),
16843 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_SEC_TDM_RX_1,
16845 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16846 msm_routing_get_port_mixer,
16847 msm_routing_put_port_mixer),
16848 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_SEC_TDM_RX_1,
16850 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16851 msm_routing_get_port_mixer,
16852 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016853};
16854
16855static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016856 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016858 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16859 msm_routing_get_port_mixer,
16860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016861 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16862 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016863 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16864 msm_routing_get_port_mixer,
16865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016866 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16867 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016868 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16869 msm_routing_get_port_mixer,
16870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016871 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016873 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16874 msm_routing_get_port_mixer,
16875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016876 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016878 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16879 msm_routing_get_port_mixer,
16880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016881 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16882 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016883 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16884 msm_routing_get_port_mixer,
16885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016886 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16887 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016888 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16889 msm_routing_get_port_mixer,
16890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016891 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016893 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16894 msm_routing_get_port_mixer,
16895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016896 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016898 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
16899 msm_routing_get_port_mixer,
16900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016901 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
16902 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016903 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
16904 msm_routing_get_port_mixer,
16905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016906 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
16907 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016908 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
16909 msm_routing_get_port_mixer,
16910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
16914 msm_routing_get_port_mixer,
16915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016916 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016918 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16919 msm_routing_get_port_mixer,
16920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016921 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016923 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16924 msm_routing_get_port_mixer,
16925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016928 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16929 msm_routing_get_port_mixer,
16930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016931 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16932 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016933 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16934 msm_routing_get_port_mixer,
16935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016936 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016938 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16939 msm_routing_get_port_mixer,
16940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016941 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016943 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16944 msm_routing_get_port_mixer,
16945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016946 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016948 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16949 msm_routing_get_port_mixer,
16950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016951 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16952 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016953 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16954 msm_routing_get_port_mixer,
16955 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016956 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16957 MSM_BACKEND_DAI_SEC_TDM_RX_2,
16958 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16959 msm_routing_get_port_mixer,
16960 msm_routing_put_port_mixer),
16961 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_SEC_TDM_RX_2,
16963 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16964 msm_routing_get_port_mixer,
16965 msm_routing_put_port_mixer),
16966 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_SEC_TDM_RX_2,
16968 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16969 msm_routing_get_port_mixer,
16970 msm_routing_put_port_mixer),
16971 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16972 MSM_BACKEND_DAI_SEC_TDM_RX_2,
16973 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
16974 msm_routing_get_port_mixer,
16975 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016976};
16977
16978static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016979 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16980 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016981 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16982 msm_routing_get_port_mixer,
16983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016984 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16985 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016986 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16987 msm_routing_get_port_mixer,
16988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016989 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016991 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16992 msm_routing_get_port_mixer,
16993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016994 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16995 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016996 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16997 msm_routing_get_port_mixer,
16998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016999 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17000 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017001 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17002 msm_routing_get_port_mixer,
17003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017004 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17005 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17007 msm_routing_get_port_mixer,
17008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017009 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017011 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17012 msm_routing_get_port_mixer,
17013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017014 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17015 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017016 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17017 msm_routing_get_port_mixer,
17018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017019 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17020 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017021 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17022 msm_routing_get_port_mixer,
17023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017024 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17025 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017026 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17027 msm_routing_get_port_mixer,
17028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17032 msm_routing_get_port_mixer,
17033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017034 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17035 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017036 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17037 msm_routing_get_port_mixer,
17038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017039 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17040 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017041 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17042 msm_routing_get_port_mixer,
17043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017044 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17047 msm_routing_get_port_mixer,
17048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017049 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17050 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017051 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17052 msm_routing_get_port_mixer,
17053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017054 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17055 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017056 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17057 msm_routing_get_port_mixer,
17058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017059 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17060 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017061 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17062 msm_routing_get_port_mixer,
17063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017064 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017066 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17067 msm_routing_get_port_mixer,
17068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017069 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17070 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017071 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17072 msm_routing_get_port_mixer,
17073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017074 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17075 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017076 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17077 msm_routing_get_port_mixer,
17078 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017079 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17080 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17081 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17082 msm_routing_get_port_mixer,
17083 msm_routing_put_port_mixer),
17084 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17085 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17086 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17087 msm_routing_get_port_mixer,
17088 msm_routing_put_port_mixer),
17089 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17090 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17091 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17092 msm_routing_get_port_mixer,
17093 msm_routing_put_port_mixer),
17094 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17095 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17096 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17097 msm_routing_get_port_mixer,
17098 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017099};
17100
Derek Chenfdcc0982018-10-02 15:14:03 -070017101static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
17102 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
17103 MSM_BACKEND_DAI_SEC_TDM_RX_7,
17104 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
17105 msm_routing_get_port_mixer,
17106 msm_routing_put_port_mixer),
17107};
17108
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017109static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017110 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17111 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017112 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17113 msm_routing_get_port_mixer,
17114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017115 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17118 msm_routing_get_port_mixer,
17119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017120 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017122 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17123 msm_routing_get_port_mixer,
17124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017125 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17126 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017127 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17128 msm_routing_get_port_mixer,
17129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017130 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17131 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017132 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17133 msm_routing_get_port_mixer,
17134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017135 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017137 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17138 msm_routing_get_port_mixer,
17139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017140 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017142 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17143 msm_routing_get_port_mixer,
17144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017145 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17146 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017147 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17148 msm_routing_get_port_mixer,
17149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017150 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17151 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017152 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17153 msm_routing_get_port_mixer,
17154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017157 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17158 msm_routing_get_port_mixer,
17159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017160 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017162 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17163 msm_routing_get_port_mixer,
17164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017165 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17166 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017167 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17168 msm_routing_get_port_mixer,
17169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017170 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017172 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17173 msm_routing_get_port_mixer,
17174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017175 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17176 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017177 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17178 msm_routing_get_port_mixer,
17179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017180 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017182 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17183 msm_routing_get_port_mixer,
17184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017185 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017187 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17188 msm_routing_get_port_mixer,
17189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017190 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017192 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17193 msm_routing_get_port_mixer,
17194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017195 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17196 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017197 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17198 msm_routing_get_port_mixer,
17199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017200 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17201 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017202 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17203 msm_routing_get_port_mixer,
17204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017205 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17206 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017207 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17208 msm_routing_get_port_mixer,
17209 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017210 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17212 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17213 msm_routing_get_port_mixer,
17214 msm_routing_put_port_mixer),
17215 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17217 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17218 msm_routing_get_port_mixer,
17219 msm_routing_put_port_mixer),
17220 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17221 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17222 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17223 msm_routing_get_port_mixer,
17224 msm_routing_put_port_mixer),
17225 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17226 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17227 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17228 msm_routing_get_port_mixer,
17229 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017230};
17231
17232static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017233 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017235 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17236 msm_routing_get_port_mixer,
17237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017238 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17239 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017240 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17241 msm_routing_get_port_mixer,
17242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017243 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017245 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17246 msm_routing_get_port_mixer,
17247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017248 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017250 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17251 msm_routing_get_port_mixer,
17252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017253 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17254 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017255 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17256 msm_routing_get_port_mixer,
17257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017258 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17259 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017260 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17261 msm_routing_get_port_mixer,
17262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017263 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17266 msm_routing_get_port_mixer,
17267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017268 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17269 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017270 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17271 msm_routing_get_port_mixer,
17272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017273 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17274 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017275 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17276 msm_routing_get_port_mixer,
17277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017278 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17279 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017280 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17281 msm_routing_get_port_mixer,
17282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017283 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17284 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017285 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17286 msm_routing_get_port_mixer,
17287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017288 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17289 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017290 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17291 msm_routing_get_port_mixer,
17292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017293 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17294 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017295 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17296 msm_routing_get_port_mixer,
17297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017298 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17299 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017300 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17301 msm_routing_get_port_mixer,
17302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017303 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17304 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017305 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17306 msm_routing_get_port_mixer,
17307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017308 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17309 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017310 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17311 msm_routing_get_port_mixer,
17312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017313 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17314 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017315 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17316 msm_routing_get_port_mixer,
17317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017318 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17319 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017320 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17321 msm_routing_get_port_mixer,
17322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017323 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17324 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017325 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17326 msm_routing_get_port_mixer,
17327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017328 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17329 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017330 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17331 msm_routing_get_port_mixer,
17332 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017333 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17334 MSM_BACKEND_DAI_TERT_TDM_RX_1,
17335 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17336 msm_routing_get_port_mixer,
17337 msm_routing_put_port_mixer),
17338 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_TERT_TDM_RX_1,
17340 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17341 msm_routing_get_port_mixer,
17342 msm_routing_put_port_mixer),
17343 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17344 MSM_BACKEND_DAI_TERT_TDM_RX_1,
17345 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17346 msm_routing_get_port_mixer,
17347 msm_routing_put_port_mixer),
17348 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
17350 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17351 msm_routing_get_port_mixer,
17352 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017353};
17354
17355static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017356 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17357 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017358 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17359 msm_routing_get_port_mixer,
17360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017361 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017363 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17364 msm_routing_get_port_mixer,
17365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017366 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017368 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17369 msm_routing_get_port_mixer,
17370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017371 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17372 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017373 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17374 msm_routing_get_port_mixer,
17375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017376 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17377 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017378 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17379 msm_routing_get_port_mixer,
17380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017381 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17382 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017383 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17384 msm_routing_get_port_mixer,
17385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017386 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17387 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017388 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17389 msm_routing_get_port_mixer,
17390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017391 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17392 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017393 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17394 msm_routing_get_port_mixer,
17395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017396 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17397 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017398 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17399 msm_routing_get_port_mixer,
17400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017401 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17402 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017403 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17404 msm_routing_get_port_mixer,
17405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017406 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17407 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017408 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17409 msm_routing_get_port_mixer,
17410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017411 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017413 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17414 msm_routing_get_port_mixer,
17415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017416 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17419 msm_routing_get_port_mixer,
17420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017421 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17422 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017423 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17424 msm_routing_get_port_mixer,
17425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017426 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17427 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017428 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17429 msm_routing_get_port_mixer,
17430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017431 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017433 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17434 msm_routing_get_port_mixer,
17435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017436 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17437 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017438 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17439 msm_routing_get_port_mixer,
17440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017441 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17442 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017443 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17444 msm_routing_get_port_mixer,
17445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017446 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17447 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017448 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17449 msm_routing_get_port_mixer,
17450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017451 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17452 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017453 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17454 msm_routing_get_port_mixer,
17455 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017456 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17457 MSM_BACKEND_DAI_TERT_TDM_RX_2,
17458 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17459 msm_routing_get_port_mixer,
17460 msm_routing_put_port_mixer),
17461 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17462 MSM_BACKEND_DAI_TERT_TDM_RX_2,
17463 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17464 msm_routing_get_port_mixer,
17465 msm_routing_put_port_mixer),
17466 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17467 MSM_BACKEND_DAI_TERT_TDM_RX_2,
17468 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17469 msm_routing_get_port_mixer,
17470 msm_routing_put_port_mixer),
17471 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_TERT_TDM_RX_2,
17473 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17474 msm_routing_get_port_mixer,
17475 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017476};
17477
17478static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017479 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17482 msm_routing_get_port_mixer,
17483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017484 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17485 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017486 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17487 msm_routing_get_port_mixer,
17488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017489 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17490 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17492 msm_routing_get_port_mixer,
17493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17495 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17497 msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017499 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17500 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017501 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17502 msm_routing_get_port_mixer,
17503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017504 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17505 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017506 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17507 msm_routing_get_port_mixer,
17508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017509 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17510 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017511 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17512 msm_routing_get_port_mixer,
17513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017514 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017516 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17517 msm_routing_get_port_mixer,
17518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017519 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17520 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017521 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17522 msm_routing_get_port_mixer,
17523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017524 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17525 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017526 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17527 msm_routing_get_port_mixer,
17528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017529 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017531 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17532 msm_routing_get_port_mixer,
17533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017534 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17535 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017536 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17537 msm_routing_get_port_mixer,
17538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017539 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17540 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017541 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17542 msm_routing_get_port_mixer,
17543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017544 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17545 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017546 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17547 msm_routing_get_port_mixer,
17548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017549 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017551 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17552 msm_routing_get_port_mixer,
17553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017554 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17555 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017556 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17557 msm_routing_get_port_mixer,
17558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017559 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17560 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017561 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17562 msm_routing_get_port_mixer,
17563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017564 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17565 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017566 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17567 msm_routing_get_port_mixer,
17568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017569 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17570 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017571 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17572 msm_routing_get_port_mixer,
17573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017574 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17575 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017576 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17577 msm_routing_get_port_mixer,
17578 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017579 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17580 MSM_BACKEND_DAI_TERT_TDM_RX_3,
17581 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17582 msm_routing_get_port_mixer,
17583 msm_routing_put_port_mixer),
17584 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17585 MSM_BACKEND_DAI_TERT_TDM_RX_3,
17586 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17587 msm_routing_get_port_mixer,
17588 msm_routing_put_port_mixer),
17589 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17590 MSM_BACKEND_DAI_TERT_TDM_RX_3,
17591 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17592 msm_routing_get_port_mixer,
17593 msm_routing_put_port_mixer),
17594 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17595 MSM_BACKEND_DAI_TERT_TDM_RX_3,
17596 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17597 msm_routing_get_port_mixer,
17598 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017599};
17600
17601static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017602 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17603 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017604 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17605 msm_routing_get_port_mixer,
17606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017607 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17608 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017609 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17610 msm_routing_get_port_mixer,
17611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017612 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17613 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017614 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
17615 msm_routing_get_port_mixer,
17616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017617 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17618 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017619 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17620 msm_routing_get_port_mixer,
17621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017622 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17623 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017624 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17625 msm_routing_get_port_mixer,
17626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017627 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17628 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017629 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17630 msm_routing_get_port_mixer,
17631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017632 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017634 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17635 msm_routing_get_port_mixer,
17636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017637 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17638 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017639 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17640 msm_routing_get_port_mixer,
17641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017642 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17643 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017644 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17645 msm_routing_get_port_mixer,
17646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017647 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17648 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017649 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17650 msm_routing_get_port_mixer,
17651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017652 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017654 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17655 msm_routing_get_port_mixer,
17656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017657 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17658 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017659 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17660 msm_routing_get_port_mixer,
17661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017662 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17663 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017664 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17665 msm_routing_get_port_mixer,
17666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017667 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17668 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017669 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17670 msm_routing_get_port_mixer,
17671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017672 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17673 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017674 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17675 msm_routing_get_port_mixer,
17676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017677 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17678 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017679 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17680 msm_routing_get_port_mixer,
17681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017682 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17683 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017684 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17685 msm_routing_get_port_mixer,
17686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017687 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17688 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017689 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17690 msm_routing_get_port_mixer,
17691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017692 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17693 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017694 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17695 msm_routing_get_port_mixer,
17696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017697 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17698 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017699 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17700 msm_routing_get_port_mixer,
17701 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017702 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17703 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
17704 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17705 msm_routing_get_port_mixer,
17706 msm_routing_put_port_mixer),
17707 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17708 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
17709 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17710 msm_routing_get_port_mixer,
17711 msm_routing_put_port_mixer),
17712 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17713 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
17714 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17715 msm_routing_get_port_mixer,
17716 msm_routing_put_port_mixer),
17717 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17718 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
17719 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17720 msm_routing_get_port_mixer,
17721 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017722};
17723
17724static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017725 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17726 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017727 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17728 msm_routing_get_port_mixer,
17729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017730 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17731 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017732 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17733 msm_routing_get_port_mixer,
17734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017735 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17736 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017737 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
17738 msm_routing_get_port_mixer,
17739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017740 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17741 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017742 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17743 msm_routing_get_port_mixer,
17744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017745 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17746 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017747 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17748 msm_routing_get_port_mixer,
17749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017750 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17751 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017752 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17753 msm_routing_get_port_mixer,
17754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017755 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17756 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017757 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17758 msm_routing_get_port_mixer,
17759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017760 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17761 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017762 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17763 msm_routing_get_port_mixer,
17764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017765 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17766 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017767 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17768 msm_routing_get_port_mixer,
17769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017770 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17771 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017772 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17773 msm_routing_get_port_mixer,
17774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017775 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17776 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017777 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17778 msm_routing_get_port_mixer,
17779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017780 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17781 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017782 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17783 msm_routing_get_port_mixer,
17784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017785 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17786 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17788 msm_routing_get_port_mixer,
17789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017790 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017792 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17793 msm_routing_get_port_mixer,
17794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017795 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17796 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017797 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17798 msm_routing_get_port_mixer,
17799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017800 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17801 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017802 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17803 msm_routing_get_port_mixer,
17804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017805 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17806 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017807 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17808 msm_routing_get_port_mixer,
17809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017810 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17811 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017812 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17813 msm_routing_get_port_mixer,
17814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017815 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17816 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017817 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17818 msm_routing_get_port_mixer,
17819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017820 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17821 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017822 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17823 msm_routing_get_port_mixer,
17824 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017825 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17826 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
17827 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17828 msm_routing_get_port_mixer,
17829 msm_routing_put_port_mixer),
17830 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17831 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
17832 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17833 msm_routing_get_port_mixer,
17834 msm_routing_put_port_mixer),
17835 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17836 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
17837 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17838 msm_routing_get_port_mixer,
17839 msm_routing_put_port_mixer),
17840 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17841 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
17842 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17843 msm_routing_get_port_mixer,
17844 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017845};
17846
17847static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017848 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17849 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017850 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17851 msm_routing_get_port_mixer,
17852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017853 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17854 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017855 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17856 msm_routing_get_port_mixer,
17857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017858 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17859 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017860 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
17861 msm_routing_get_port_mixer,
17862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017863 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17864 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017865 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17866 msm_routing_get_port_mixer,
17867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017868 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17869 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017870 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17871 msm_routing_get_port_mixer,
17872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017873 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017875 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17876 msm_routing_get_port_mixer,
17877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017878 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17879 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017880 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17881 msm_routing_get_port_mixer,
17882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017883 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17884 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017885 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17886 msm_routing_get_port_mixer,
17887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017888 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17889 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017890 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17891 msm_routing_get_port_mixer,
17892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017893 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17894 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017895 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17896 msm_routing_get_port_mixer,
17897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017898 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17899 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017900 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17901 msm_routing_get_port_mixer,
17902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017903 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17904 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017905 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17906 msm_routing_get_port_mixer,
17907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017908 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17909 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017910 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17911 msm_routing_get_port_mixer,
17912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017913 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17914 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017915 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17916 msm_routing_get_port_mixer,
17917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017918 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17919 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017920 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17921 msm_routing_get_port_mixer,
17922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017923 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17924 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017925 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17926 msm_routing_get_port_mixer,
17927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017928 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17929 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017930 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17931 msm_routing_get_port_mixer,
17932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017933 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17934 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017935 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17936 msm_routing_get_port_mixer,
17937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017938 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17939 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017940 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17941 msm_routing_get_port_mixer,
17942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017943 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17944 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017945 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17946 msm_routing_get_port_mixer,
17947 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017948 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17949 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
17950 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17951 msm_routing_get_port_mixer,
17952 msm_routing_put_port_mixer),
17953 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17954 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
17955 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17956 msm_routing_get_port_mixer,
17957 msm_routing_put_port_mixer),
17958 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17959 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
17960 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17961 msm_routing_get_port_mixer,
17962 msm_routing_put_port_mixer),
17963 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17964 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
17965 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17966 msm_routing_get_port_mixer,
17967 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017968};
17969
17970static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017971 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17972 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017973 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
17977 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017978 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("TERT_MI2S_TX", SND_SOC_NOPM,
17982 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017983 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
17987 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017988 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17992 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017993 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
17997 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017998 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18002 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018003 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18007 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018008 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
18012 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018013 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
18017 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018018 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18019 msm_routing_get_port_mixer,
18020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018021 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18022 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018023 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18024 msm_routing_get_port_mixer,
18025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018026 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18027 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018028 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18029 msm_routing_get_port_mixer,
18030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018031 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18032 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018033 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18034 msm_routing_get_port_mixer,
18035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018036 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18037 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018038 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18039 msm_routing_get_port_mixer,
18040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018041 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18042 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018043 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18044 msm_routing_get_port_mixer,
18045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018046 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18047 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018048 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18049 msm_routing_get_port_mixer,
18050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018051 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18052 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018053 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18054 msm_routing_get_port_mixer,
18055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018056 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18057 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018058 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18059 msm_routing_get_port_mixer,
18060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018061 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18062 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018063 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18064 msm_routing_get_port_mixer,
18065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018066 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18067 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018068 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18069 msm_routing_get_port_mixer,
18070 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018071 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18072 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18073 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18074 msm_routing_get_port_mixer,
18075 msm_routing_put_port_mixer),
18076 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18077 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18078 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18079 msm_routing_get_port_mixer,
18080 msm_routing_put_port_mixer),
18081 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18082 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18083 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18084 msm_routing_get_port_mixer,
18085 msm_routing_put_port_mixer),
18086 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18087 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18088 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18089 msm_routing_get_port_mixer,
18090 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018091};
18092
Derek Chenb9048cb2019-03-07 14:54:13 -050018093static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
18094 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
18095 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
18096 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
18097 msm_routing_get_port_mixer,
18098 msm_routing_put_port_mixer),
18099};
18100
Rohit Kumara5077932017-09-10 22:05:05 +053018101static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018102 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18103 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018104 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18105 msm_routing_get_port_mixer,
18106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018107 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18108 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018109 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18110 msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018112 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018114 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18115 msm_routing_get_port_mixer,
18116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018117 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18118 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018119 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18120 msm_routing_get_port_mixer,
18121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018122 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18123 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018124 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18125 msm_routing_get_port_mixer,
18126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018127 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18128 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018129 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18130 msm_routing_get_port_mixer,
18131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018132 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18133 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018134 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18135 msm_routing_get_port_mixer,
18136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018137 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18138 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018139 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18140 msm_routing_get_port_mixer,
18141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018142 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18143 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018144 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18145 msm_routing_get_port_mixer,
18146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018147 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18148 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018149 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18150 msm_routing_get_port_mixer,
18151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018152 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18153 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018154 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18155 msm_routing_get_port_mixer,
18156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018157 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18158 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018159 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18160 msm_routing_get_port_mixer,
18161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018162 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18163 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018164 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18165 msm_routing_get_port_mixer,
18166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018167 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18168 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018169 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18173 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018174 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
18178 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018179 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18183 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018184 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18188 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018189 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18193 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018194 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18198 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018199 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18200 msm_routing_get_port_mixer,
18201 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018202 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18203 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18204 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18205 msm_routing_get_port_mixer,
18206 msm_routing_put_port_mixer),
18207 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18208 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18209 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18210 msm_routing_get_port_mixer,
18211 msm_routing_put_port_mixer),
18212 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18213 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18214 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18215 msm_routing_get_port_mixer,
18216 msm_routing_put_port_mixer),
18217 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18218 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18219 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18220 msm_routing_get_port_mixer,
18221 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018222};
18223
18224static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018225 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018227 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18228 msm_routing_get_port_mixer,
18229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018230 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018232 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18233 msm_routing_get_port_mixer,
18234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018235 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18236 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018237 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18238 msm_routing_get_port_mixer,
18239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018240 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18241 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018242 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18243 msm_routing_get_port_mixer,
18244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018245 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18246 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018247 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18248 msm_routing_get_port_mixer,
18249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018250 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18251 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018252 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18253 msm_routing_get_port_mixer,
18254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018255 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18256 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018257 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18258 msm_routing_get_port_mixer,
18259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018260 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18261 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018262 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18263 msm_routing_get_port_mixer,
18264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018265 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18266 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018267 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18268 msm_routing_get_port_mixer,
18269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018270 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18271 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018272 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18273 msm_routing_get_port_mixer,
18274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018275 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18276 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018277 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18278 msm_routing_get_port_mixer,
18279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018280 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18281 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018282 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18283 msm_routing_get_port_mixer,
18284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018285 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18286 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018287 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18288 msm_routing_get_port_mixer,
18289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018290 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18291 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018292 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18296 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018297 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
18301 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018302 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18306 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018307 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18311 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018312 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18316 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018317 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18321 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018322 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18323 msm_routing_get_port_mixer,
18324 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018325 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18326 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
18327 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18328 msm_routing_get_port_mixer,
18329 msm_routing_put_port_mixer),
18330 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18331 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
18332 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18333 msm_routing_get_port_mixer,
18334 msm_routing_put_port_mixer),
18335 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18336 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
18337 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18338 msm_routing_get_port_mixer,
18339 msm_routing_put_port_mixer),
18340 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18341 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
18342 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18343 msm_routing_get_port_mixer,
18344 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018345};
18346
18347static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018348 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018350 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18351 msm_routing_get_port_mixer,
18352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018353 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018355 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18356 msm_routing_get_port_mixer,
18357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018358 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18359 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018360 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18361 msm_routing_get_port_mixer,
18362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018363 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18364 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018365 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18366 msm_routing_get_port_mixer,
18367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018368 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18369 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018370 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18371 msm_routing_get_port_mixer,
18372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018373 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18374 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018375 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18376 msm_routing_get_port_mixer,
18377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018378 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18379 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018380 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18381 msm_routing_get_port_mixer,
18382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018383 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18384 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018385 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18386 msm_routing_get_port_mixer,
18387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018388 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18389 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018390 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18391 msm_routing_get_port_mixer,
18392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018393 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18394 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018395 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18396 msm_routing_get_port_mixer,
18397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018398 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18399 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018400 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18401 msm_routing_get_port_mixer,
18402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018403 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18404 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018405 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18406 msm_routing_get_port_mixer,
18407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018408 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18409 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018410 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18411 msm_routing_get_port_mixer,
18412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018413 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18414 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018415 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18419 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018420 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
18424 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018425 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18429 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018430 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18434 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018435 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18439 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018440 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18444 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018445 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18446 msm_routing_get_port_mixer,
18447 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018448 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18449 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
18450 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18451 msm_routing_get_port_mixer,
18452 msm_routing_put_port_mixer),
18453 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18454 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
18455 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18456 msm_routing_get_port_mixer,
18457 msm_routing_put_port_mixer),
18458 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18459 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
18460 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18461 msm_routing_get_port_mixer,
18462 msm_routing_put_port_mixer),
18463 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18464 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
18465 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18466 msm_routing_get_port_mixer,
18467 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018468};
18469
18470static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018471 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18472 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018473 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18474 msm_routing_get_port_mixer,
18475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018476 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18477 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018478 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18479 msm_routing_get_port_mixer,
18480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018481 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18482 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018483 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18484 msm_routing_get_port_mixer,
18485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018486 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18487 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018488 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18489 msm_routing_get_port_mixer,
18490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018491 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18492 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018493 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18494 msm_routing_get_port_mixer,
18495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018496 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18497 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018498 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18499 msm_routing_get_port_mixer,
18500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018501 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18502 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018503 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18504 msm_routing_get_port_mixer,
18505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018506 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18507 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018508 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18509 msm_routing_get_port_mixer,
18510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018511 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18512 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018513 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18514 msm_routing_get_port_mixer,
18515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018516 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18517 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018518 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18519 msm_routing_get_port_mixer,
18520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018521 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18522 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018523 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18524 msm_routing_get_port_mixer,
18525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018526 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18527 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018528 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18529 msm_routing_get_port_mixer,
18530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018531 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18532 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018533 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18534 msm_routing_get_port_mixer,
18535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018536 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18537 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018538 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18542 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018543 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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_TDM_TX_3", SND_SOC_NOPM,
18547 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018548 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18552 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018553 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18557 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018558 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18562 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018563 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18567 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018568 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18569 msm_routing_get_port_mixer,
18570 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018571 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18572 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
18573 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18574 msm_routing_get_port_mixer,
18575 msm_routing_put_port_mixer),
18576 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18577 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
18578 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18579 msm_routing_get_port_mixer,
18580 msm_routing_put_port_mixer),
18581 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18582 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
18583 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18584 msm_routing_get_port_mixer,
18585 msm_routing_put_port_mixer),
18586 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18587 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
18588 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18589 msm_routing_get_port_mixer,
18590 msm_routing_put_port_mixer),
18591};
18592
18593static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
18594 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18595 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18596 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18597 msm_routing_get_port_mixer,
18598 msm_routing_put_port_mixer),
18599 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18600 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18601 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18602 msm_routing_get_port_mixer,
18603 msm_routing_put_port_mixer),
18604 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18605 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18606 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18607 msm_routing_get_port_mixer,
18608 msm_routing_put_port_mixer),
18609 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18610 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18611 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18612 msm_routing_get_port_mixer,
18613 msm_routing_put_port_mixer),
18614 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18615 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18616 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18617 msm_routing_get_port_mixer,
18618 msm_routing_put_port_mixer),
18619 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18620 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18621 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18622 msm_routing_get_port_mixer,
18623 msm_routing_put_port_mixer),
18624 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18625 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18626 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18627 msm_routing_get_port_mixer,
18628 msm_routing_put_port_mixer),
18629 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18630 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18631 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18632 msm_routing_get_port_mixer,
18633 msm_routing_put_port_mixer),
18634 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18635 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18636 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18637 msm_routing_get_port_mixer,
18638 msm_routing_put_port_mixer),
18639 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18640 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18641 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18642 msm_routing_get_port_mixer,
18643 msm_routing_put_port_mixer),
18644 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18645 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18646 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18647 msm_routing_get_port_mixer,
18648 msm_routing_put_port_mixer),
18649 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18650 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18651 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18652 msm_routing_get_port_mixer,
18653 msm_routing_put_port_mixer),
18654 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18655 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18656 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18657 msm_routing_get_port_mixer,
18658 msm_routing_put_port_mixer),
18659 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18660 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18661 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18662 msm_routing_get_port_mixer,
18663 msm_routing_put_port_mixer),
18664 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18665 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18666 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18667 msm_routing_get_port_mixer,
18668 msm_routing_put_port_mixer),
18669 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18670 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18671 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18672 msm_routing_get_port_mixer,
18673 msm_routing_put_port_mixer),
18674 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18675 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18676 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18677 msm_routing_get_port_mixer,
18678 msm_routing_put_port_mixer),
18679 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18680 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18681 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18682 msm_routing_get_port_mixer,
18683 msm_routing_put_port_mixer),
18684 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18685 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18686 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18687 msm_routing_get_port_mixer,
18688 msm_routing_put_port_mixer),
18689 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18690 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18691 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18692 msm_routing_get_port_mixer,
18693 msm_routing_put_port_mixer),
18694 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18695 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18696 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18697 msm_routing_get_port_mixer,
18698 msm_routing_put_port_mixer),
18699 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18700 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18701 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18702 msm_routing_get_port_mixer,
18703 msm_routing_put_port_mixer),
18704 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18705 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18706 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18707 msm_routing_get_port_mixer,
18708 msm_routing_put_port_mixer),
18709 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18710 MSM_BACKEND_DAI_SEN_TDM_RX_0,
18711 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18712 msm_routing_get_port_mixer,
18713 msm_routing_put_port_mixer),
18714};
18715
18716static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
18717 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18718 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18719 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18720 msm_routing_get_port_mixer,
18721 msm_routing_put_port_mixer),
18722 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18723 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18724 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18725 msm_routing_get_port_mixer,
18726 msm_routing_put_port_mixer),
18727 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18728 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18729 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18730 msm_routing_get_port_mixer,
18731 msm_routing_put_port_mixer),
18732 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18733 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18734 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18735 msm_routing_get_port_mixer,
18736 msm_routing_put_port_mixer),
18737 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18738 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18739 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18740 msm_routing_get_port_mixer,
18741 msm_routing_put_port_mixer),
18742 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18743 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18744 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18745 msm_routing_get_port_mixer,
18746 msm_routing_put_port_mixer),
18747 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18748 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18749 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18750 msm_routing_get_port_mixer,
18751 msm_routing_put_port_mixer),
18752 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18753 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18754 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18755 msm_routing_get_port_mixer,
18756 msm_routing_put_port_mixer),
18757 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18758 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18759 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18760 msm_routing_get_port_mixer,
18761 msm_routing_put_port_mixer),
18762 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18763 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18764 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18765 msm_routing_get_port_mixer,
18766 msm_routing_put_port_mixer),
18767 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18768 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18769 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18770 msm_routing_get_port_mixer,
18771 msm_routing_put_port_mixer),
18772 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18773 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18774 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18775 msm_routing_get_port_mixer,
18776 msm_routing_put_port_mixer),
18777 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18778 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18779 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18780 msm_routing_get_port_mixer,
18781 msm_routing_put_port_mixer),
18782 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18783 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18784 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18785 msm_routing_get_port_mixer,
18786 msm_routing_put_port_mixer),
18787 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18788 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18789 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18790 msm_routing_get_port_mixer,
18791 msm_routing_put_port_mixer),
18792 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18793 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18794 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18795 msm_routing_get_port_mixer,
18796 msm_routing_put_port_mixer),
18797 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18798 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18799 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18800 msm_routing_get_port_mixer,
18801 msm_routing_put_port_mixer),
18802 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18803 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18804 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18805 msm_routing_get_port_mixer,
18806 msm_routing_put_port_mixer),
18807 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18808 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18809 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18810 msm_routing_get_port_mixer,
18811 msm_routing_put_port_mixer),
18812 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18813 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18814 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18815 msm_routing_get_port_mixer,
18816 msm_routing_put_port_mixer),
18817 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18818 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18819 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18820 msm_routing_get_port_mixer,
18821 msm_routing_put_port_mixer),
18822 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18823 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18824 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18825 msm_routing_get_port_mixer,
18826 msm_routing_put_port_mixer),
18827 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18828 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18829 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18830 msm_routing_get_port_mixer,
18831 msm_routing_put_port_mixer),
18832 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18833 MSM_BACKEND_DAI_SEN_TDM_RX_1,
18834 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18835 msm_routing_get_port_mixer,
18836 msm_routing_put_port_mixer),
18837};
18838
18839static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
18840 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18841 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18842 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18843 msm_routing_get_port_mixer,
18844 msm_routing_put_port_mixer),
18845 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18846 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18847 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18848 msm_routing_get_port_mixer,
18849 msm_routing_put_port_mixer),
18850 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18851 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18852 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18853 msm_routing_get_port_mixer,
18854 msm_routing_put_port_mixer),
18855 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18856 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18857 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18858 msm_routing_get_port_mixer,
18859 msm_routing_put_port_mixer),
18860 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18861 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18862 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18863 msm_routing_get_port_mixer,
18864 msm_routing_put_port_mixer),
18865 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18866 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18867 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18868 msm_routing_get_port_mixer,
18869 msm_routing_put_port_mixer),
18870 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18871 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18872 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18873 msm_routing_get_port_mixer,
18874 msm_routing_put_port_mixer),
18875 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18876 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18877 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18878 msm_routing_get_port_mixer,
18879 msm_routing_put_port_mixer),
18880 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18881 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18882 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18883 msm_routing_get_port_mixer,
18884 msm_routing_put_port_mixer),
18885 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18886 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18887 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18888 msm_routing_get_port_mixer,
18889 msm_routing_put_port_mixer),
18890 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18891 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18892 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18893 msm_routing_get_port_mixer,
18894 msm_routing_put_port_mixer),
18895 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18896 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18897 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18898 msm_routing_get_port_mixer,
18899 msm_routing_put_port_mixer),
18900 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18901 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18902 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18903 msm_routing_get_port_mixer,
18904 msm_routing_put_port_mixer),
18905 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18906 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18907 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18908 msm_routing_get_port_mixer,
18909 msm_routing_put_port_mixer),
18910 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18911 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18912 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18913 msm_routing_get_port_mixer,
18914 msm_routing_put_port_mixer),
18915 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18916 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18917 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18918 msm_routing_get_port_mixer,
18919 msm_routing_put_port_mixer),
18920 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18921 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18922 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18923 msm_routing_get_port_mixer,
18924 msm_routing_put_port_mixer),
18925 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18926 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18927 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18928 msm_routing_get_port_mixer,
18929 msm_routing_put_port_mixer),
18930 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18931 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18932 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18933 msm_routing_get_port_mixer,
18934 msm_routing_put_port_mixer),
18935 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18936 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18937 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18938 msm_routing_get_port_mixer,
18939 msm_routing_put_port_mixer),
18940 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18941 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18942 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18943 msm_routing_get_port_mixer,
18944 msm_routing_put_port_mixer),
18945 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18946 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18947 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18948 msm_routing_get_port_mixer,
18949 msm_routing_put_port_mixer),
18950 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18951 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18952 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18953 msm_routing_get_port_mixer,
18954 msm_routing_put_port_mixer),
18955 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18956 MSM_BACKEND_DAI_SEN_TDM_RX_2,
18957 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18958 msm_routing_get_port_mixer,
18959 msm_routing_put_port_mixer),
18960};
18961
18962static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
18963 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18964 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18965 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18966 msm_routing_get_port_mixer,
18967 msm_routing_put_port_mixer),
18968 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18969 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18970 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18971 msm_routing_get_port_mixer,
18972 msm_routing_put_port_mixer),
18973 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18974 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18975 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18976 msm_routing_get_port_mixer,
18977 msm_routing_put_port_mixer),
18978 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18979 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18980 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18981 msm_routing_get_port_mixer,
18982 msm_routing_put_port_mixer),
18983 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18984 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18985 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18986 msm_routing_get_port_mixer,
18987 msm_routing_put_port_mixer),
18988 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18989 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18990 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18991 msm_routing_get_port_mixer,
18992 msm_routing_put_port_mixer),
18993 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18994 MSM_BACKEND_DAI_SEN_TDM_RX_3,
18995 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18996 msm_routing_get_port_mixer,
18997 msm_routing_put_port_mixer),
18998 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18999 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19000 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19001 msm_routing_get_port_mixer,
19002 msm_routing_put_port_mixer),
19003 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19004 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19005 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19006 msm_routing_get_port_mixer,
19007 msm_routing_put_port_mixer),
19008 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19009 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19010 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19011 msm_routing_get_port_mixer,
19012 msm_routing_put_port_mixer),
19013 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19014 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19015 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19016 msm_routing_get_port_mixer,
19017 msm_routing_put_port_mixer),
19018 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19019 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19020 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19021 msm_routing_get_port_mixer,
19022 msm_routing_put_port_mixer),
19023 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19024 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19025 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19026 msm_routing_get_port_mixer,
19027 msm_routing_put_port_mixer),
19028 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19029 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19030 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19031 msm_routing_get_port_mixer,
19032 msm_routing_put_port_mixer),
19033 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19034 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19035 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19036 msm_routing_get_port_mixer,
19037 msm_routing_put_port_mixer),
19038 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19039 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19040 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19041 msm_routing_get_port_mixer,
19042 msm_routing_put_port_mixer),
19043 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19044 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19045 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19046 msm_routing_get_port_mixer,
19047 msm_routing_put_port_mixer),
19048 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19049 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19050 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19051 msm_routing_get_port_mixer,
19052 msm_routing_put_port_mixer),
19053 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19054 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19055 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19056 msm_routing_get_port_mixer,
19057 msm_routing_put_port_mixer),
19058 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19059 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19060 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19061 msm_routing_get_port_mixer,
19062 msm_routing_put_port_mixer),
19063 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19064 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19065 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19066 msm_routing_get_port_mixer,
19067 msm_routing_put_port_mixer),
19068 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19069 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19070 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19071 msm_routing_get_port_mixer,
19072 msm_routing_put_port_mixer),
19073 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19074 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19075 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19076 msm_routing_get_port_mixer,
19077 msm_routing_put_port_mixer),
19078 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19079 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19080 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19081 msm_routing_get_port_mixer,
19082 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019083};
19084
19085static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019086 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19087 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019088 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019090 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19091 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019092 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019094 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019096 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
19097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019098 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19099 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019100 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019102 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
19103 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019104 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19105 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019106 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
19108 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019110 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019112 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019114 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019116 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19117 msm_routing_put_port_mixer),
19118};
19119
19120static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019121 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19122 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019123 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019125 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19126 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019127 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019129 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019131 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019133 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19134 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019135 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019137 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
19138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019139 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19140 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019141 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
19143 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019145 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
19146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019147 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
19148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019149 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019151 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
19152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019153 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019155 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019157 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019159 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
19160 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019161};
19162
19163static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019164 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19165 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019166 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19167 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019168 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19169 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19171 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19175 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019176 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19177 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019178 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19179 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019180 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19181 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019182 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19183 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019184 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19185 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019186 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19187 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019188 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19189 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019190 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19191 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019192 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019194 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19195 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019196 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19197 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19198 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19199 msm_routing_put_listen_mixer),
19200 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19201 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19202 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19203 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019204 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19205 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19206 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19207 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019208 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19209 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19210 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19211 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019212 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19214 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19215 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019216};
19217
19218static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019219 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19220 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019221 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19222 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019223 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
19224 SND_SOC_NOPM,
19225 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019226 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19227 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019228 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19229 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019230 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19231 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019232 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19233 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019234 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19235 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019236 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19237 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019238 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19239 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019240 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19241 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019242 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19243 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019244 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19245 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019246 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19247 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019248 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19249 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019250 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19251 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019252 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19253 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19254 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19255 msm_routing_put_listen_mixer),
19256 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19257 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19258 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19259 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019260 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19261 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19262 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19263 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019264 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19265 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19266 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19267 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019268 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19269 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19270 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19271 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019272};
19273
19274static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019275 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19276 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019277 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19278 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019279 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19280 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19282 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019283 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19284 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019285 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19286 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019287 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19288 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019289 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19290 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019291 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19292 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019293 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19294 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019295 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19298 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019299 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19300 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019301 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19302 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019303 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19304 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019305 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19306 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019307 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19308 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19309 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19310 msm_routing_put_listen_mixer),
19311 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19312 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19313 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19314 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019315 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19317 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19318 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019319 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19321 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19322 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019323 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19324 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19325 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19326 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019327};
19328
19329static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019330 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19333 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019334 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19335 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019336 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19337 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019338 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19339 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019340 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19341 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019342 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19343 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019344 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19345 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019346 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19347 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019348 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19349 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019350 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19353 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019354 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19355 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019356 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19357 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019358 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19359 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019360 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19361 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019362 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19363 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19364 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19365 msm_routing_put_listen_mixer),
19366 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19367 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19368 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19369 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19372 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19373 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19376 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19377 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019378 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19379 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19380 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19381 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019382};
19383
19384static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019385 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19386 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019387 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19388 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019389 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19390 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019391 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19392 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019393 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19394 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019395 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19396 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019397 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19398 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019399 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19400 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019401 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19402 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019403 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19404 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019405 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19406 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019407 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19408 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019409 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19410 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019411 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19412 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019413 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019415 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19416 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019417 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19418 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19419 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19420 msm_routing_put_listen_mixer),
19421 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19422 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19423 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19424 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019425 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19426 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19427 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19428 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019429 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19430 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19431 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19432 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019433 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19435 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19436 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019437};
19438
19439static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019440 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19441 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019442 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19443 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019444 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19445 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019446 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19447 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019448 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019450 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19451 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019452 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19453 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019454 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19455 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019456 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19457 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019458 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19459 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019460 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19461 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019462 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19463 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019464 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19465 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019466 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19467 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019468 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019470 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19471 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019472 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19473 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19474 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19475 msm_routing_put_listen_mixer),
19476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19478 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19479 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19482 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19483 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19486 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19487 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019488 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19489 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19490 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19491 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019492};
19493
19494static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019495 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19496 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019497 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19498 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019499 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19500 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019501 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19502 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019503 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19504 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019505 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19506 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019507 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19508 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19510 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019511 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019513 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19514 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019515 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19516 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019517 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19518 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019519 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19520 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019521 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19522 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019523 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19524 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019525 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19526 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019527 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19528 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19529 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19530 msm_routing_put_listen_mixer),
19531 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19533 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19534 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019535 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19536 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19537 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19538 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019539 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19540 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19541 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19542 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019543 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19544 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19545 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19546 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019547};
19548
19549static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019550 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19551 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019552 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19553 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019554 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19555 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019556 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19557 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019558 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19559 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019560 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19561 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019562 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19563 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019564 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19565 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019566 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019568 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19569 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019570 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19571 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019572 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19573 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019574 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19575 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019576 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19577 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019578 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19579 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019580 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19581 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019582 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19583 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19584 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19585 msm_routing_put_listen_mixer),
19586 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19588 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19589 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019590 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19591 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19592 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19593 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019594 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19595 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19596 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19597 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019598 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19599 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19600 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19601 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019602};
19603
19604static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
19605 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19606 0, 1, 0, msm_routing_get_switch_mixer,
19607 msm_routing_put_switch_mixer);
19608
19609static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
19610 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19611 0, 1, 0, msm_routing_get_switch_mixer,
19612 msm_routing_put_switch_mixer);
19613
19614static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
19615 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19616 0, 1, 0, msm_routing_get_switch_mixer,
19617 msm_routing_put_switch_mixer);
19618
19619static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
19620 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19621 0, 1, 0, msm_routing_get_switch_mixer,
19622 msm_routing_put_switch_mixer);
19623
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019624static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
19625 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19626 0, 1, 0, msm_routing_get_switch_mixer,
19627 msm_routing_put_switch_mixer);
19628
19629static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019630 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19631 0, 1, 0, msm_routing_get_switch_mixer,
19632 msm_routing_put_switch_mixer);
19633
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019634static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
19635 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19636 0, 1, 0, msm_routing_get_switch_mixer,
19637 msm_routing_put_switch_mixer);
19638
19639static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
19640 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19641 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
19642 msm_routing_put_fm_pcmrx_switch_mixer);
19643
19644static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
19645 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19646 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
19647 msm_routing_put_int0_mi2s_switch_mixer);
19648
19649static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
19650 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19651 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
19652 msm_routing_put_int4_mi2s_switch_mixer);
19653
19654static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
19655 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19656 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
19657 msm_routing_put_pri_mi2s_switch_mixer);
19658
19659static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
19660 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19661 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
19662 msm_routing_put_sec_mi2s_switch_mixer);
19663
19664static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
19665 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19666 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
19667 msm_routing_put_tert_mi2s_switch_mixer);
19668
19669static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
19670 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19671 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
19672 msm_routing_put_quat_mi2s_switch_mixer);
19673
Rohit Kumara5077932017-09-10 22:05:05 +053019674static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
19675 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19676 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
19677 msm_routing_put_quin_mi2s_switch_mixer);
19678
Karthikeyan Manic3700752019-03-11 18:33:53 -070019679static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
19680 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19681 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
19682 msm_routing_put_sen_mi2s_switch_mixer);
19683
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019684static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
19685 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19686 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19687 msm_routing_put_hfp_switch_mixer);
19688
19689static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
19690 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19691 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19692 msm_routing_put_hfp_switch_mixer);
19693
19694static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
19695 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19696 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19697 msm_routing_put_hfp_switch_mixer);
19698
19699static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
19700 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19701 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19702 msm_routing_put_hfp_switch_mixer);
19703
19704static const struct snd_kcontrol_new usb_switch_mixer_controls =
19705 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19706 0, 1, 0, msm_routing_get_usb_switch_mixer,
19707 msm_routing_put_usb_switch_mixer);
19708
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019709static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
19710 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19711 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
19712 msm_routing_a2dp_switch_mixer_put);
19713
Zhou Songcaa541d2019-02-19 18:37:47 +080019714static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
19715 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19716 0, 1, 0, msm_routing_sco_switch_mixer_get,
19717 msm_routing_sco_switch_mixer_put);
19718
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019719static const struct soc_enum lsm_port_enum =
19720 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
19721
19722static const char * const lsm_func_text[] = {
19723 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
19724};
19725static const struct soc_enum lsm_func_enum =
19726 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
19727
19728static const struct snd_kcontrol_new lsm_controls[] = {
19729 /* kcontrol of lsm_function */
19730 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19731 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19732 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19733 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19734 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19735 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19736 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19737 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19738 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19739 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19740 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19741 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19742 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19743 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19744 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19745 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19746 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19747 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019748 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19749 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019750 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19751 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019752 /* kcontrol of lsm_port */
19753 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
19754 msm_routing_lsm_port_get,
19755 msm_routing_lsm_port_put),
19756 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
19757 msm_routing_lsm_port_get,
19758 msm_routing_lsm_port_put),
19759 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
19760 msm_routing_lsm_port_get,
19761 msm_routing_lsm_port_put),
19762 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
19763 msm_routing_lsm_port_get,
19764 msm_routing_lsm_port_put),
19765 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
19766 msm_routing_lsm_port_get,
19767 msm_routing_lsm_port_put),
19768 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
19769 msm_routing_lsm_port_get,
19770 msm_routing_lsm_port_put),
19771 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
19772 msm_routing_lsm_port_get,
19773 msm_routing_lsm_port_put),
19774 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
19775 msm_routing_lsm_port_get,
19776 msm_routing_lsm_port_put),
19777};
19778
19779static const char * const aanc_slim_0_rx_text[] = {
19780 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
19781 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
19782};
19783
19784static const struct soc_enum aanc_slim_0_rx_enum =
19785 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
19786 aanc_slim_0_rx_text);
19787
19788static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
19789 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
19790 msm_routing_slim_0_rx_aanc_mux_get,
19791 msm_routing_slim_0_rx_aanc_mux_put)
19792};
19793
Sudheer Papothic07b37a2018-05-04 05:56:47 +053019794static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
19795 struct snd_ctl_elem_value *ucontrol)
19796{
19797 ucontrol->value.integer.value[0] = aanc_level;
19798
19799 return 0;
19800}
19801
19802static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
19803 struct snd_ctl_elem_value *ucontrol)
19804{
19805 int ret = 0;
19806
19807 mutex_lock(&routing_lock);
19808 aanc_level = ucontrol->value.integer.value[0];
19809 pr_debug("%s: value: %ld\n",
19810 __func__, ucontrol->value.integer.value[0]);
19811 ret = afe_set_aanc_noise_level(aanc_level);
19812 mutex_unlock(&routing_lock);
19813
19814 return ret;
19815}
19816
19817static const struct snd_kcontrol_new aanc_noise_level[] = {
19818 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
19819 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
19820};
19821
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019822static int msm_routing_get_stereo_to_custom_stereo_control(
19823 struct snd_kcontrol *kcontrol,
19824 struct snd_ctl_elem_value *ucontrol)
19825{
19826 ucontrol->value.integer.value[0] = is_custom_stereo_on;
19827 return 0;
19828}
19829
19830static int msm_routing_put_stereo_to_custom_stereo_control(
19831 struct snd_kcontrol *kcontrol,
19832 struct snd_ctl_elem_value *ucontrol)
19833{
19834 int flag = 0, i = 0, rc = 0, idx = 0;
19835 int be_index = 0, port_id, topo_id;
19836 unsigned int session_id = 0;
19837 uint16_t op_FL_ip_FL_weight = 0;
19838 uint16_t op_FL_ip_FR_weight = 0;
19839 uint16_t op_FR_ip_FL_weight = 0;
19840 uint16_t op_FR_ip_FR_weight = 0;
19841
19842 flag = ucontrol->value.integer.value[0];
19843 pr_debug("%s E flag %d\n", __func__, flag);
19844
19845 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
19846 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
19847 __func__, is_custom_stereo_on, flag);
19848 return 0;
19849 }
19850 is_custom_stereo_on = flag ? true : false;
19851 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
19852 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
19853 port_id = msm_bedais[be_index].port_id;
19854 if (!msm_bedais[be_index].active)
19855 continue;
19856 if ((port_id != SLIMBUS_0_RX) &&
19857 (port_id != RT_PROXY_PORT_001_RX) &&
19858 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
19859 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
19860 continue;
19861
19862 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
19863 MSM_FRONTEND_DAI_MM_SIZE) {
19864 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
19865 LEGACY_PCM_MODE)
19866 goto skip_send_custom_stereo;
19867 session_id =
19868 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
19869 if (is_custom_stereo_on) {
19870 op_FL_ip_FL_weight =
19871 Q14_GAIN_ZERO_POINT_FIVE;
19872 op_FL_ip_FR_weight =
19873 Q14_GAIN_ZERO_POINT_FIVE;
19874 op_FR_ip_FL_weight =
19875 Q14_GAIN_ZERO_POINT_FIVE;
19876 op_FR_ip_FR_weight =
19877 Q14_GAIN_ZERO_POINT_FIVE;
19878 } else {
19879 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
19880 op_FL_ip_FR_weight = 0;
19881 op_FR_ip_FL_weight = 0;
19882 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
19883 }
19884 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19885 unsigned long copp =
19886 session_copp_map[i]
19887 [SESSION_TYPE_RX][be_index];
19888 if (!test_bit(idx, &copp))
19889 goto skip_send_custom_stereo;
19890 topo_id = adm_get_topology_for_port_copp_idx(
19891 msm_bedais[be_index].port_id, idx);
19892 if (topo_id < 0)
19893 pr_debug("%s:Err:custom stereo topo %d",
19894 __func__, topo_id);
19895 pr_debug("idx %d\n", idx);
19896 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
19897 rc = msm_ds2_dap_set_custom_stereo_onoff
19898 (msm_bedais[be_index].port_id,
19899 idx, is_custom_stereo_on);
19900 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
19901 rc = dolby_dap_set_custom_stereo_onoff(
19902 msm_bedais[be_index].port_id,
19903 idx, is_custom_stereo_on);
19904 else
19905 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
19906 (msm_bedais[be_index].port_id,
19907 idx, session_id,
19908 op_FL_ip_FL_weight,
19909 op_FL_ip_FR_weight,
19910 op_FR_ip_FL_weight,
19911 op_FR_ip_FR_weight);
19912 if (rc < 0)
19913skip_send_custom_stereo:
19914 pr_err("%s: err setting custom stereo\n",
19915 __func__);
19916 }
19917
19918 }
19919 }
19920 return 0;
19921}
19922
19923static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
19924 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
19925 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
19926 msm_routing_put_stereo_to_custom_stereo_control),
19927};
19928
19929static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
19930 struct snd_ctl_elem_value *ucontrol)
19931{
19932 return 0;
19933}
19934
19935static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
19936 struct snd_ctl_elem_value *ucontrol)
19937{
19938 int i = 0, j;
19939 int num_app_types = ucontrol->value.integer.value[i++];
19940
19941 pr_debug("%s\n", __func__);
19942
19943 memset(app_type_cfg, 0, MAX_APP_TYPES*
19944 sizeof(struct msm_pcm_routing_app_type_data));
19945 if (num_app_types > MAX_APP_TYPES) {
19946 pr_err("%s: number of app types exceed the max supported\n",
19947 __func__);
19948 return -EINVAL;
19949 }
19950 for (j = 0; j < num_app_types; j++) {
19951 app_type_cfg[j].app_type =
19952 ucontrol->value.integer.value[i++];
19953 app_type_cfg[j].sample_rate =
19954 ucontrol->value.integer.value[i++];
19955 app_type_cfg[j].bit_width =
19956 ucontrol->value.integer.value[i++];
19957 }
19958
19959 return 0;
19960}
19961
19962static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
19963 struct snd_ctl_elem_value *ucontrol)
19964{
19965 int j, fe_id, be_id, port_type;
19966 int ret = 0;
19967 unsigned long copp;
19968 struct msm_pcm_routing_bdai_data *bedai;
19969 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
19970 SESSION_TYPE_RX;
19971 int app_type = ucontrol->value.integer.value[1];
19972 int gain = (ucontrol->value.integer.value[2] +
19973 ucontrol->value.integer.value[3])/2;
19974
19975 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
19976 MSM_AFE_PORT_TYPE_TX;
19977
19978 mutex_lock(&routing_lock);
19979 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
19980 if (is_be_dai_extproc(be_id))
19981 continue;
19982
19983 bedai = &msm_bedais[be_id];
19984 if (afe_get_port_type(bedai->port_id) != port_type)
19985 continue;
19986
19987 if (!bedai->active)
19988 continue;
19989
19990 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
19991 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
19992 continue;
19993
19994 if (app_type !=
19995 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
19996 continue;
19997
19998 copp = session_copp_map[fe_id][dir][be_id];
19999 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
20000 if (!test_bit(j, &copp))
20001 continue;
20002 ret |= adm_set_volume(bedai->port_id, j, gain);
20003 }
20004 }
20005 }
20006 mutex_unlock(&routing_lock);
20007 return ret ? -EINVAL : 0;
20008}
20009
20010static const struct snd_kcontrol_new app_type_cfg_controls[] = {
20011 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
20012 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
20013 msm_routing_put_app_type_cfg_control),
20014 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
20015 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
20016};
20017
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020018static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
20019 struct snd_ctl_elem_value *ucontrol)
20020{
20021 int copp_idx, fe_id, be_id, port_type;
20022 int ret = 0;
20023 unsigned long copp;
20024 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020025 u8 *packed_params = NULL;
20026 struct param_hdr_v3 param_hdr;
20027 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
20028 sizeof(uint32_t));
20029
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020030 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
20031 SESSION_TYPE_RX;
20032 int app_type = ucontrol->value.integer.value[1];
20033 int module_id = ucontrol->value.integer.value[2];
20034 int instance_id = ucontrol->value.integer.value[3];
20035 int param_id = ucontrol->value.integer.value[4];
20036 int param_value = ucontrol->value.integer.value[5];
20037
20038 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
20039 MSM_AFE_PORT_TYPE_TX;
20040 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
20041 __func__, app_type, module_id,
20042 instance_id, param_id, param_value);
20043
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020044 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
20045 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020046 return -ENOMEM;
20047
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020048 memset(&param_hdr, 0, sizeof(param_hdr));
20049 param_hdr.module_id = module_id;
20050 param_hdr.instance_id = instance_id;
20051 param_hdr.param_id = param_id;
20052 param_hdr.param_size = sizeof(uint32_t);
20053
20054 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020055
20056 mutex_lock(&routing_lock);
20057 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
20058 if (is_be_dai_extproc(be_id))
20059 continue;
20060
20061 bedai = &msm_bedais[be_id];
20062 if (afe_get_port_type(bedai->port_id) != port_type)
20063 continue;
20064
20065 if (!bedai->active)
20066 continue;
20067
20068 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
20069 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
20070 continue;
20071
20072 if (app_type !=
20073 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
20074 continue;
20075
20076 copp = session_copp_map[fe_id][dir][be_id];
20077 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
20078 copp_idx++) {
20079 if (!test_bit(copp_idx, &copp))
20080 continue;
20081
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020082 ret = q6common_pack_pp_params(packed_params,
20083 &param_hdr,
20084 (u8 *) &param_value,
20085 &packed_param_size);
20086 if (ret) {
20087 pr_err("%s: Failed to pack params, error %d\n",
20088 __func__, ret);
20089 goto done;
20090 }
20091
20092 ret = adm_set_pp_params(bedai->port_id,
20093 copp_idx, NULL,
20094 packed_params,
20095 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020096 if (ret) {
20097 pr_err("%s: Setting param failed with err=%d\n",
20098 __func__, ret);
20099 ret = -EINVAL;
20100 goto done;
20101 }
20102 }
20103 }
20104 }
20105done:
20106 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020107 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020108 return ret;
20109}
20110
20111static const struct snd_kcontrol_new module_cfg_controls[] = {
20112 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
20113 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
20114};
20115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020116static int msm_routing_get_lsm_app_type_cfg_control(
20117 struct snd_kcontrol *kcontrol,
20118 struct snd_ctl_elem_value *ucontrol)
20119{
Meng Wangadbca4f2018-10-29 14:30:13 +080020120 int shift = ((struct soc_multi_mixer_control *)
20121 kcontrol->private_value)->shift;
20122 int i = 0, j = 0;
20123
20124 ucontrol->value.integer.value[i] = num_app_cfg_types;
20125
20126 for (j = 0; j < num_app_cfg_types; ++j) {
20127 ucontrol->value.integer.value[++i] =
20128 lsm_app_type_cfg[j].app_type;
20129 ucontrol->value.integer.value[++i] =
20130 lsm_app_type_cfg[j].sample_rate;
20131 ucontrol->value.integer.value[++i] =
20132 lsm_app_type_cfg[j].bit_width;
20133 if (shift == 1)
20134 ucontrol->value.integer.value[++i] =
20135 lsm_app_type_cfg[j].num_out_channels;
20136 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020137 return 0;
20138}
20139
20140static int msm_routing_put_lsm_app_type_cfg_control(
20141 struct snd_kcontrol *kcontrol,
20142 struct snd_ctl_elem_value *ucontrol)
20143{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020144 int shift = ((struct soc_multi_mixer_control *)
20145 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020146 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020147
Meng Wangadbca4f2018-10-29 14:30:13 +080020148 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020149 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020150 sizeof(struct msm_pcm_routing_app_type_data));
20151
Meng Wangadbca4f2018-10-29 14:30:13 +080020152 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020153 pr_err("%s: number of app types exceed the max supported\n",
20154 __func__);
20155 return -EINVAL;
20156 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020157
Meng Wangadbca4f2018-10-29 14:30:13 +080020158 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020159 lsm_app_type_cfg[j].app_type =
20160 ucontrol->value.integer.value[i++];
20161 lsm_app_type_cfg[j].sample_rate =
20162 ucontrol->value.integer.value[i++];
20163 lsm_app_type_cfg[j].bit_width =
20164 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020165 /* Shift of 1 indicates this is V2 mixer control */
20166 if (shift == 1)
20167 lsm_app_type_cfg[j].num_out_channels =
20168 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020169 }
20170
20171 return 0;
20172}
20173
20174static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
20175 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
20176 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20177 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020178 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
20179 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20180 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020181};
20182
20183static int msm_routing_get_use_ds1_or_ds2_control(
20184 struct snd_kcontrol *kcontrol,
20185 struct snd_ctl_elem_value *ucontrol)
20186{
20187 ucontrol->value.integer.value[0] = is_ds2_on;
20188 return 0;
20189}
20190
20191static int msm_routing_put_use_ds1_or_ds2_control(
20192 struct snd_kcontrol *kcontrol,
20193 struct snd_ctl_elem_value *ucontrol)
20194{
20195 is_ds2_on = ucontrol->value.integer.value[0];
20196 return 0;
20197}
20198
20199static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
20200 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
20201 1, 0, msm_routing_get_use_ds1_or_ds2_control,
20202 msm_routing_put_use_ds1_or_ds2_control),
20203};
20204
20205int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
20206 struct snd_ctl_elem_value *ucontrol) {
20207 int rc = 0;
20208 int be_idx = 0;
20209 char *param_value;
20210 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020211 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
20212 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020213
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020214 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020215 if (!param_value)
20216 return -ENOMEM;
20217
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020218 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020219 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
20220 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
20221 break;
20222 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020223 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
20224 param_hdr.instance_id = INSTANCE_ID_0;
20225 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
20226 param_hdr.param_size = param_size;
20227 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
20228 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020229 if (rc) {
20230 pr_err("%s: get parameters failed:%d\n", __func__, rc);
20231 kfree(param_value);
20232 return -EINVAL;
20233 }
20234 update_param_value = (int *)param_value;
20235 ucontrol->value.integer.value[0] = update_param_value[0];
20236
20237 pr_debug("%s: FROM DSP value[0] 0x%x\n",
20238 __func__, update_param_value[0]);
20239 }
20240 kfree(param_value);
20241 return 0;
20242}
20243
20244static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
20245 struct snd_ctl_elem_value *ucontrol)
20246{
20247 voc_session_id = ucontrol->value.integer.value[0];
20248
20249 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
20250
20251 return 0;
20252}
20253
20254static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
20255 struct snd_ctl_elem_value *ucontrol)
20256{
20257 ucontrol->value.integer.value[0] = voc_session_id;
20258
20259 return 0;
20260}
20261
20262static struct snd_kcontrol_new msm_voc_session_controls[] = {
20263 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
20264 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
20265 msm_voc_session_id_put),
20266};
20267
20268static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
20269 struct snd_ctl_elem_info *uinfo)
20270{
20271 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20272 uinfo->count = sizeof(struct sound_focus_param);
20273
20274 return 0;
20275}
20276
20277static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
20278 struct snd_ctl_elem_value *ucontrol)
20279{
20280 int ret = 0;
20281 struct sound_focus_param soundFocusData;
20282
20283 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
20284 sizeof(struct sound_focus_param));
20285 ret = voc_set_sound_focus(soundFocusData);
20286 if (ret) {
20287 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
20288 __func__, ret);
20289
20290 ret = -EINVAL;
20291 }
20292
20293 return ret;
20294}
20295
20296static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
20297 struct snd_ctl_elem_value *ucontrol)
20298{
20299 int ret = 0;
20300 struct sound_focus_param soundFocusData;
20301
20302 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
20303
20304 ret = voc_get_sound_focus(&soundFocusData);
20305 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020306 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020307 __func__, ret);
20308
20309 ret = -EINVAL;
20310 goto done;
20311 }
20312 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
20313 sizeof(struct sound_focus_param));
20314
20315done:
20316 return ret;
20317}
20318
20319static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
20320 struct snd_ctl_elem_info *uinfo)
20321{
20322 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20323 uinfo->count = sizeof(struct source_tracking_param);
20324
20325 return 0;
20326}
20327
20328static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
20329 struct snd_ctl_elem_value *ucontrol)
20330{
Meng Wang92edfde2018-04-24 12:18:37 +080020331 int ret = 0;
20332 struct source_tracking_param sourceTrackingData;
20333
20334 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
20335
20336 ret = voc_get_source_tracking(&sourceTrackingData);
20337 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020338 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080020339 __func__, ret);
20340
20341 ret = -EINVAL;
20342 goto done;
20343 }
20344 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
20345 sizeof(struct source_tracking_param));
20346
20347done:
20348 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020349}
20350
20351static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
20352 int *copp_idx)
20353{
20354 int i, idx, be_idx;
20355 int ret = 0;
20356 unsigned long copp;
20357
20358 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
20359
20360 ret = q6audio_validate_port(port_id);
20361 if (ret < 0) {
20362 pr_err("%s: port validation failed id 0x%x ret %d\n",
20363 __func__, port_id, ret);
20364
20365 ret = -EINVAL;
20366 goto done;
20367 }
20368
20369 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
20370 if (msm_bedais[be_idx].port_id == port_id)
20371 break;
20372 }
20373 if (be_idx >= MSM_BACKEND_DAI_MAX) {
20374 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
20375
20376 ret = -EINVAL;
20377 goto done;
20378 }
20379
20380 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020381 MSM_FRONTEND_DAI_MAX) {
20382 if (!(is_mm_lsm_fe_id(i) &&
20383 route_check_fe_id_adm_support(i)))
20384 continue;
20385
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020386 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
20387 copp = session_copp_map[i]
20388 [session_type][be_idx];
20389 if (test_bit(idx, &copp))
20390 break;
20391 }
20392 if (idx >= MAX_COPPS_PER_PORT)
20393 continue;
20394 else
20395 break;
20396 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020397 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020398 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020399
20400 ret = -EINVAL;
20401 goto done;
20402 }
20403 *copp_idx = idx;
20404 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
20405
20406done:
20407 return ret;
20408}
20409
20410static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
20411 const char *prefix, int *port_id)
20412{
20413 int ret = 0;
20414
20415 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
20416
20417 /*
20418 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
20419 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
20420 * and compare the string with the backend name to derive the port id.
20421 */
20422 if (!strcmp(kcontrol->id.name + strlen(prefix),
20423 "SLIMBUS_0")) {
20424 *port_id = SLIMBUS_0_TX;
20425 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20426 "TERT_MI2S")) {
20427 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
20428 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20429 "INT3_MI2S")) {
20430 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053020431 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20432 "VA_CDC_DMA_TX_0")) {
20433 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053020434 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20435 "TX_CDC_DMA_TX_3")) {
20436 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020437 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20438 "QUIN_TDM_TX_0")) {
20439 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053020440 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20441 "PRIMARY_TDM")) {
20442 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020443 } else {
20444 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
20445 __func__, kcontrol->id.name);
20446
20447 ret = -EINVAL;
20448 goto done;
20449 }
20450 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
20451 __func__, kcontrol->id.name, *port_id);
20452
20453done:
20454 return ret;
20455}
20456
20457static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
20458 struct snd_ctl_elem_value *ucontrol)
20459{
20460 int ret = 0;
20461 struct sound_focus_param soundFocusData;
20462 int port_id, copp_idx;
20463
20464 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20465 "Sound Focus Audio Tx ", &port_id);
20466 if (ret != 0) {
20467 pr_err("%s: Error in deriving port id, err=%d\n",
20468 __func__, ret);
20469
20470 ret = -EINVAL;
20471 goto done;
20472 }
20473
20474 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20475 &copp_idx);
20476 if (ret) {
20477 pr_err("%s: Could not get copp idx for port_id=%d\n",
20478 __func__, port_id);
20479
20480 ret = -EINVAL;
20481 goto done;
20482 }
20483
20484 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
20485 sizeof(struct sound_focus_param));
20486
20487 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
20488 if (ret) {
20489 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
20490 __func__, ret);
20491
20492 ret = -EINVAL;
20493 goto done;
20494 }
20495
20496done:
20497 return ret;
20498}
20499
20500static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
20501 struct snd_ctl_elem_value *ucontrol)
20502{
20503 int ret = 0;
20504 struct sound_focus_param soundFocusData;
20505 int port_id, copp_idx;
20506
20507 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20508 "Sound Focus Audio Tx ", &port_id);
20509 if (ret) {
20510 pr_err("%s: Error in deriving port id, err=%d\n",
20511 __func__, ret);
20512
20513 ret = -EINVAL;
20514 goto done;
20515 }
20516
20517 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20518 &copp_idx);
20519 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020520 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020521 __func__, port_id);
20522
20523 ret = -EINVAL;
20524 goto done;
20525 }
20526
20527 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
20528 if (ret) {
20529 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
20530 __func__, ret);
20531
20532 ret = -EINVAL;
20533 goto done;
20534 }
20535
20536 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
20537 sizeof(struct sound_focus_param));
20538
20539done:
20540 return ret;
20541}
20542
20543static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
20544 struct snd_ctl_elem_value *ucontrol)
20545{
20546 int ret = 0;
20547 struct source_tracking_param sourceTrackingData;
20548 int port_id, copp_idx;
20549
20550 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20551 "Source Tracking Audio Tx ", &port_id);
20552 if (ret) {
20553 pr_err("%s: Error in deriving port id, err=%d\n",
20554 __func__, ret);
20555
20556 ret = -EINVAL;
20557 goto done;
20558 }
20559
20560 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20561 &copp_idx);
20562 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020563 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020564 __func__, port_id);
20565
20566 ret = -EINVAL;
20567 goto done;
20568 }
20569
20570 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
20571 if (ret) {
20572 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
20573 __func__, ret);
20574
20575 ret = -EINVAL;
20576 goto done;
20577 }
20578
20579 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
20580 sizeof(struct source_tracking_param));
20581
20582done:
20583 return ret;
20584}
20585
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020586static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
20587 struct snd_ctl_elem_info *uinfo)
20588{
20589 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20590 uinfo->count = sizeof(struct doa_tracking_mon_param);
20591
20592 return 0;
20593}
20594
20595static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
20596 struct snd_ctl_elem_value *ucontrol)
20597{
20598 int ret = 0;
20599 struct doa_tracking_mon_param doa_tracking_data;
20600 int port_id, copp_idx;
20601
20602 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
20603 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20604 "Doa Tracking Monitor Listen ", &port_id);
20605 if (ret) {
20606 pr_err("%s: Error in deriving port id, err=%d\n",
20607 __func__, ret);
20608 ret = -EINVAL;
20609 goto done;
20610 }
20611
20612 /*
20613 * If copp id exists for given port id, query adm to get doa data.
20614 * Else query afe for doa tracking params.
20615 * This is to support in cases where LSM directly connects to
20616 * AFE for FFNS.
20617 */
20618 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20619 &copp_idx);
20620 if (!ret)
20621 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
20622 &doa_tracking_data);
20623 else
20624 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
20625
20626 if (ret) {
20627 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
20628 __func__, ret);
20629 ret = -EINVAL;
20630 goto done;
20631 }
20632
20633 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
20634 sizeof(struct doa_tracking_mon_param));
20635done:
20636 return ret;
20637}
20638
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020639static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
20640 {
20641 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20642 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20643 .name = "Sound Focus Voice Tx SLIMBUS_0",
20644 .info = msm_sound_focus_info,
20645 .get = msm_voice_sound_focus_get,
20646 .put = msm_voice_sound_focus_put,
20647 },
20648 {
20649 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20651 .name = "Source Tracking Voice Tx SLIMBUS_0",
20652 .info = msm_source_tracking_info,
20653 .get = msm_voice_source_tracking_get,
20654 },
20655 {
20656 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20657 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20658 .name = "Sound Focus Audio Tx SLIMBUS_0",
20659 .info = msm_sound_focus_info,
20660 .get = msm_audio_sound_focus_get,
20661 .put = msm_audio_sound_focus_put,
20662 },
20663 {
20664 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20666 .name = "Source Tracking Audio Tx SLIMBUS_0",
20667 .info = msm_source_tracking_info,
20668 .get = msm_audio_source_tracking_get,
20669 },
20670 {
20671 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20672 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20673 .name = "Sound Focus Voice Tx TERT_MI2S",
20674 .info = msm_sound_focus_info,
20675 .get = msm_voice_sound_focus_get,
20676 .put = msm_voice_sound_focus_put,
20677 },
20678 {
20679 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20681 .name = "Source Tracking Voice Tx TERT_MI2S",
20682 .info = msm_source_tracking_info,
20683 .get = msm_voice_source_tracking_get,
20684 },
20685 {
20686 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20687 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20688 .name = "Sound Focus Audio Tx TERT_MI2S",
20689 .info = msm_sound_focus_info,
20690 .get = msm_audio_sound_focus_get,
20691 .put = msm_audio_sound_focus_put,
20692 },
20693 {
20694 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20695 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20696 .name = "Source Tracking Audio Tx TERT_MI2S",
20697 .info = msm_source_tracking_info,
20698 .get = msm_audio_source_tracking_get,
20699 },
20700 {
20701 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20702 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20703 .name = "Sound Focus Voice Tx INT3_MI2S",
20704 .info = msm_sound_focus_info,
20705 .get = msm_voice_sound_focus_get,
20706 .put = msm_voice_sound_focus_put,
20707 },
20708 {
20709 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20711 .name = "Source Tracking Voice Tx INT3_MI2S",
20712 .info = msm_source_tracking_info,
20713 .get = msm_voice_source_tracking_get,
20714 },
20715 {
20716 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20717 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20718 .name = "Sound Focus Audio Tx INT3_MI2S",
20719 .info = msm_sound_focus_info,
20720 .get = msm_audio_sound_focus_get,
20721 .put = msm_audio_sound_focus_put,
20722 },
20723 {
20724 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20725 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20726 .name = "Source Tracking Audio Tx INT3_MI2S",
20727 .info = msm_source_tracking_info,
20728 .get = msm_audio_source_tracking_get,
20729 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053020730 {
20731 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20732 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20733 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
20734 .info = msm_sound_focus_info,
20735 .get = msm_voice_sound_focus_get,
20736 .put = msm_voice_sound_focus_put,
20737 },
20738 {
20739 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20741 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
20742 .info = msm_source_tracking_info,
20743 .get = msm_voice_source_tracking_get,
20744 },
20745 {
20746 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20747 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20748 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
20749 .info = msm_sound_focus_info,
20750 .get = msm_audio_sound_focus_get,
20751 .put = msm_audio_sound_focus_put,
20752 },
20753 {
20754 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20755 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20756 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
20757 .info = msm_source_tracking_info,
20758 .get = msm_audio_source_tracking_get,
20759 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053020760 {
20761 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20762 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20763 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
20764 .info = msm_sound_focus_info,
20765 .get = msm_voice_sound_focus_get,
20766 .put = msm_voice_sound_focus_put,
20767 },
20768 {
20769 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20770 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20771 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
20772 .info = msm_source_tracking_info,
20773 .get = msm_voice_source_tracking_get,
20774 },
20775 {
20776 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20777 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20778 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
20779 .info = msm_sound_focus_info,
20780 .get = msm_audio_sound_focus_get,
20781 .put = msm_audio_sound_focus_put,
20782 },
20783 {
20784 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20785 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20786 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
20787 .info = msm_source_tracking_info,
20788 .get = msm_audio_source_tracking_get,
20789 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020790 {
20791 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20792 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20793 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
20794 .info = msm_sound_focus_info,
20795 .get = msm_voice_sound_focus_get,
20796 .put = msm_voice_sound_focus_put,
20797 },
20798 {
20799 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20800 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20801 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
20802 .info = msm_source_tracking_info,
20803 .get = msm_voice_source_tracking_get,
20804 },
20805 {
20806 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20807 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20808 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
20809 .info = msm_sound_focus_info,
20810 .get = msm_audio_sound_focus_get,
20811 .put = msm_audio_sound_focus_put,
20812 },
20813 {
20814 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20815 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20816 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
20817 .info = msm_source_tracking_info,
20818 .get = msm_audio_source_tracking_get,
20819 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020820 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053020821 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20822 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20823 .name = "Sound Focus Audio Tx PRIMARY_TDM",
20824 .info = msm_sound_focus_info,
20825 .get = msm_audio_sound_focus_get,
20826 .put = msm_audio_sound_focus_put,
20827 },
20828 {
20829 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20830 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20831 .name = "Source Tracking Audio Tx PRIMARY_TDM",
20832 .info = msm_source_tracking_info,
20833 .get = msm_audio_source_tracking_get,
20834 },
20835 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020836 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20837 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20838 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
20839 .info = msm_doa_tracking_mon_info,
20840 .get = msm_doa_tracking_mon_get,
20841 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020842};
20843
20844static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
20845 struct snd_ctl_elem_value *ucontrol)
20846{
20847 int ret = 0;
20848 int item;
20849 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
20850
20851 pr_debug("%s item is %d\n", __func__,
20852 ucontrol->value.enumerated.item[0]);
20853 mutex_lock(&routing_lock);
20854 item = ucontrol->value.enumerated.item[0];
20855 if (item < e->items) {
20856 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
20857 __func__, e->shift_l, e->values[item]);
20858 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
20859 e->values[item] < MSM_BACKEND_DAI_MAX)
20860 /* Enable feedback TX path */
20861 ret = afe_spk_prot_feed_back_cfg(
20862 msm_bedais[e->values[item]].port_id,
20863 msm_bedais[e->shift_l].port_id, 1, 0, 1);
20864 else {
20865 pr_debug("%s values are out of range item %d\n",
20866 __func__, e->values[item]);
20867 /* Disable feedback TX path */
20868 if (e->values[item] == MSM_BACKEND_DAI_MAX)
20869 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
20870 else
20871 ret = -EINVAL;
20872 }
20873 } else {
20874 pr_err("%s item value is out of range item\n", __func__);
20875 ret = -EINVAL;
20876 }
20877 mutex_unlock(&routing_lock);
20878 return ret;
20879}
20880
20881static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
20882 struct snd_ctl_elem_value *ucontrol)
20883{
20884 int ret = 0;
20885 int item;
20886 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
20887
20888 pr_debug("%s item is %d\n", __func__,
20889 ucontrol->value.enumerated.item[0]);
20890 mutex_lock(&routing_lock);
20891 item = ucontrol->value.enumerated.item[0];
20892 if (item < e->items) {
20893 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
20894 __func__, e->shift_l, e->values[item]);
20895 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
20896 e->values[item] < MSM_BACKEND_DAI_MAX)
20897 /* Enable feedback TX path */
20898 ret = afe_spk_prot_feed_back_cfg(
20899 msm_bedais[e->values[item]].port_id,
20900 msm_bedais[e->shift_l].port_id,
20901 1, 1, 1);
20902 else {
20903 pr_debug("%s values are out of range item %d\n",
20904 __func__, e->values[item]);
20905 /* Disable feedback TX path */
20906 if (e->values[item] == MSM_BACKEND_DAI_MAX)
20907 ret = afe_spk_prot_feed_back_cfg(0,
20908 0, 0, 0, 0);
20909 else
20910 ret = -EINVAL;
20911 }
20912 } else {
20913 pr_err("%s item value is out of range item\n", __func__);
20914 ret = -EINVAL;
20915 }
20916 mutex_unlock(&routing_lock);
20917 return ret;
20918}
20919
20920static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
20921 struct snd_ctl_elem_value *ucontrol)
20922{
20923 pr_debug("%s\n", __func__);
20924 return 0;
20925}
20926
20927static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
20928 struct snd_ctl_elem_value *ucontrol)
20929{
20930 pr_debug("%s\n", __func__);
20931 ucontrol->value.enumerated.item[0] = 0;
20932 return 0;
20933}
20934
20935static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
20936 "ZERO", "SLIM4_TX"
20937};
20938
20939static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
20940 "ZERO", "SLIM4_TX"
20941};
20942
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020943static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
20944 "ZERO", "WSA_CDC_DMA_TX_0"
20945};
20946
20947static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
20948 "ZERO", "WSA_CDC_DMA_TX_0"
20949};
20950
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
20952 "ZERO", "SENARY_TX"
20953};
20954
20955static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
20956 "ZERO", "INT5_MI2S_TX"
20957};
20958
20959static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
20960 "ZERO", "INT5_MI2S_TX"
20961};
20962
Josh Kirschea69fed2018-12-11 16:15:08 -080020963static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020964 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
20965};
20966
Josh Kirschea69fed2018-12-11 16:15:08 -080020967static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020968 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
20969};
20970
Josh Kirschea69fed2018-12-11 16:15:08 -080020971static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020972 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
20973};
20974
Josh Kirschea69fed2018-12-11 16:15:08 -080020975static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020976 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
20977};
20978
20979
Josh Kirschea69fed2018-12-11 16:15:08 -080020980static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
20982};
20983
Josh Kirschea69fed2018-12-11 16:15:08 -080020984static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020985 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
20986};
20987
Josh Kirschea69fed2018-12-11 16:15:08 -080020988static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020989 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
20990};
20991
20992static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
20993 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
20994 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
20995 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
20996
20997static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
20998 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
20999 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
21000 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
21001
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021002static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
21003 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21004 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
21005 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
21006
21007static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
21008 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21009 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
21010 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
21011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021012static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
21013 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
21014 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
21015 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
21016
21017static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
21018 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21019 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
21020 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
21021 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
21022
21023static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
21024 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21025 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
21026 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
21027 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
21028
21029static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
21030 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
21031 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21032 spkr_prot_put_vi_lch_port);
21033
21034static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
21035 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
21036 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21037 spkr_prot_put_vi_rch_port);
21038
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021039static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
21040 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
21041 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21042 spkr_prot_put_vi_lch_port);
21043
21044static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
21045 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
21046 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21047 spkr_prot_put_vi_rch_port);
21048
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021049static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
21050 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
21051 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
21052 spkr_prot_put_vi_lch_port);
21053
21054static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
21055 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
21056 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
21057 spkr_prot_put_vi_lch_port);
21058
21059static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
21060 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
21061 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
21062 spkr_prot_put_vi_rch_port);
21063
21064static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
21065 /* Frontend AIF */
21066 /* Widget name equals to Front-End DAI name<Need confirmation>,
21067 * Stream name must contains substring of front-end dai name
21068 */
21069 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
21070 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
21071 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
21072 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
21073 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
21074 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
21075 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
21076 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
21077 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
21078 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
21079 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
21080 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
21081 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
21082 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
21083 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
21084 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
21085 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021086 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021087 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021088 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
21089 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
21090 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
21091 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
21092 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
21093 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
21094 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
21095 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
21096 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053021097 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053021098 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
21100 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
21101 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
21102 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021103 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021104 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080021105 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
21106 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021107 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
21108 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
21109 "VoiceMMode1 Playback", 0, 0, 0, 0),
21110 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
21111 "VoiceMMode1 Capture", 0, 0, 0, 0),
21112 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
21113 "VoiceMMode2 Playback", 0, 0, 0, 0),
21114 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
21115 "VoiceMMode2 Capture", 0, 0, 0, 0),
21116 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
21117 0, 0, 0, 0),
21118 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
21119 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021120 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
21121 0, 0, 0, 0),
21122 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
21123 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021124 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
21125 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021126 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
21127 0, 0, 0, 0),
21128 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
21129 0, 0, 0, 0),
21130 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
21131 0, 0, 0, 0),
21132 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
21133 0, 0, 0, 0),
21134 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
21135 0, 0, 0, 0),
21136 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
21137 0, 0, 0, 0),
21138 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
21139 0, 0, 0, 0),
21140 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
21141 0, 0, 0, 0),
21142 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
21143 0, 0, 0, 0),
21144 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
21145 0, 0, 0, 0),
21146 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
21147 0, 0, 0, 0),
21148 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
21149 0, 0, 0, 0),
21150 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
21151 0, 0, 0, 0),
21152 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
21153 0, 0, 0, 0),
21154 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
21155 0, 0, 0, 0),
21156 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
21157 0, 0, 0, 0),
21158 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
21159 0, 0, 0, 0),
21160 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
21161 0, 0, 0, 0),
21162 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
21163 0, 0, 0, 0),
21164 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
21165 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
21166 0, 0, 0, 0),
21167 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
21168 "INT0 MI2S_RX Hostless Playback",
21169 0, 0, 0, 0),
21170 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
21171 "INT4 MI2S_RX Hostless Playback",
21172 0, 0, 0, 0),
21173 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
21174 "Primary MI2S_RX Hostless Playback",
21175 0, 0, 0, 0),
21176 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
21177 "Secondary MI2S_RX Hostless Playback",
21178 0, 0, 0, 0),
21179 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
21180 "Tertiary MI2S_RX Hostless Playback",
21181 0, 0, 0, 0),
21182 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
21183 "Quaternary MI2S_RX Hostless Playback",
21184 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021185 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
21186 "Quinary MI2S_RX Hostless Playback",
21187 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021188 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
21189 "Senary MI2S_RX Hostless Playback",
21190 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021191
21192 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
21193 0, 0, 0, 0),
21194 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
21195 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021196 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
21197 0, 0, 0, 0),
21198 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
21199 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021200 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
21201 0, 0, 0, 0),
21202 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
21203 "INT3 MI2S_TX Hostless Capture",
21204 0, 0, 0, 0),
21205 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
21206 "Tertiary MI2S_TX Hostless Capture",
21207 0, 0, 0, 0),
21208 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
21209 "Secondary MI2S_TX Hostless Capture",
21210 0, 0, 0, 0),
21211 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
21212 "Primary MI2S_TX Hostless Capture",
21213 0, 0, 0, 0),
21214 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
21215 0, 0, 0, 0),
21216 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
21217 0, 0, 0, 0),
21218 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
21219 "Quaternary MI2S_TX Hostless Capture",
21220 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021221 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
21222 "Quinary MI2S_TX Hostless Capture",
21223 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021224 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
21225 "Senary MI2S_TX Hostless Capture",
21226 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021227
21228 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
21229 "Primary TDM0 Hostless Playback",
21230 0, 0, 0, 0),
21231 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
21232 "Primary TDM0 Hostless Capture",
21233 0, 0, 0, 0),
21234 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
21235 "Primary TDM1 Hostless Playback",
21236 0, 0, 0, 0),
21237 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
21238 "Primary TDM1 Hostless Capture",
21239 0, 0, 0, 0),
21240 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
21241 "Primary TDM2 Hostless Playback",
21242 0, 0, 0, 0),
21243 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
21244 "Primary TDM2 Hostless Capture",
21245 0, 0, 0, 0),
21246 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
21247 "Primary TDM3 Hostless Playback",
21248 0, 0, 0, 0),
21249 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
21250 "Primary TDM3 Hostless Capture",
21251 0, 0, 0, 0),
21252 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
21253 "Primary TDM4 Hostless Playback",
21254 0, 0, 0, 0),
21255 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
21256 "Primary TDM4 Hostless Capture",
21257 0, 0, 0, 0),
21258 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
21259 "Primary TDM5 Hostless Playback",
21260 0, 0, 0, 0),
21261 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
21262 "Primary TDM5 Hostless Capture",
21263 0, 0, 0, 0),
21264 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
21265 "Primary TDM6 Hostless Playback",
21266 0, 0, 0, 0),
21267 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
21268 "Primary TDM6 Hostless Capture",
21269 0, 0, 0, 0),
21270 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
21271 "Primary TDM7 Hostless Playback",
21272 0, 0, 0, 0),
21273 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
21274 "Primary TDM7 Hostless Capture",
21275 0, 0, 0, 0),
21276 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
21277 "Secondary TDM0 Hostless Playback",
21278 0, 0, 0, 0),
21279 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
21280 "Secondary TDM0 Hostless Capture",
21281 0, 0, 0, 0),
21282 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
21283 "Secondary TDM1 Hostless Playback",
21284 0, 0, 0, 0),
21285 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
21286 "Secondary TDM1 Hostless Capture",
21287 0, 0, 0, 0),
21288 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
21289 "Secondary TDM2 Hostless Playback",
21290 0, 0, 0, 0),
21291 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
21292 "Secondary TDM2 Hostless Capture",
21293 0, 0, 0, 0),
21294 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
21295 "Secondary TDM3 Hostless Playback",
21296 0, 0, 0, 0),
21297 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
21298 "Secondary TDM3 Hostless Capture",
21299 0, 0, 0, 0),
21300 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
21301 "Secondary TDM4 Hostless Playback",
21302 0, 0, 0, 0),
21303 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
21304 "Secondary TDM4 Hostless Capture",
21305 0, 0, 0, 0),
21306 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
21307 "Secondary TDM5 Hostless Playback",
21308 0, 0, 0, 0),
21309 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
21310 "Secondary TDM5 Hostless Capture",
21311 0, 0, 0, 0),
21312 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
21313 "Secondary TDM6 Hostless Playback",
21314 0, 0, 0, 0),
21315 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
21316 "Secondary TDM6 Hostless Capture",
21317 0, 0, 0, 0),
21318 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
21319 "Secondary TDM7 Hostless Playback",
21320 0, 0, 0, 0),
21321 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
21322 "Secondary TDM7 Hostless Capture",
21323 0, 0, 0, 0),
21324 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
21325 "Tertiary TDM0 Hostless Playback",
21326 0, 0, 0, 0),
21327 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
21328 "Tertiary TDM0 Hostless Capture",
21329 0, 0, 0, 0),
21330 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
21331 "Tertiary TDM1 Hostless Playback",
21332 0, 0, 0, 0),
21333 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
21334 "Tertiary TDM1 Hostless Capture",
21335 0, 0, 0, 0),
21336 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
21337 "Tertiary TDM2 Hostless Playback",
21338 0, 0, 0, 0),
21339 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
21340 "Tertiary TDM2 Hostless Capture",
21341 0, 0, 0, 0),
21342 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
21343 "Tertiary TDM3 Hostless Playback",
21344 0, 0, 0, 0),
21345 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
21346 "Tertiary TDM3 Hostless Capture",
21347 0, 0, 0, 0),
21348 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
21349 "Tertiary TDM4 Hostless Playback",
21350 0, 0, 0, 0),
21351 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
21352 "Tertiary TDM4 Hostless Capture",
21353 0, 0, 0, 0),
21354 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
21355 "Tertiary TDM5 Hostless Playback",
21356 0, 0, 0, 0),
21357 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
21358 "Tertiary TDM5 Hostless Capture",
21359 0, 0, 0, 0),
21360 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
21361 "Tertiary TDM6 Hostless Playback",
21362 0, 0, 0, 0),
21363 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
21364 "Tertiary TDM6 Hostless Capture",
21365 0, 0, 0, 0),
21366 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
21367 "Tertiary TDM7 Hostless Playback",
21368 0, 0, 0, 0),
21369 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
21370 "Tertiary TDM7 Hostless Capture",
21371 0, 0, 0, 0),
21372 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
21373 "Quaternary TDM0 Hostless Playback",
21374 0, 0, 0, 0),
21375 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
21376 "Quaternary TDM0 Hostless Capture",
21377 0, 0, 0, 0),
21378 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
21379 "Quaternary TDM1 Hostless Playback",
21380 0, 0, 0, 0),
21381 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
21382 "Quaternary TDM1 Hostless Capture",
21383 0, 0, 0, 0),
21384 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
21385 "Quaternary TDM2 Hostless Playback",
21386 0, 0, 0, 0),
21387 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
21388 "Quaternary TDM2 Hostless Capture",
21389 0, 0, 0, 0),
21390 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
21391 "Quaternary TDM3 Hostless Playback",
21392 0, 0, 0, 0),
21393 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
21394 "Quaternary TDM3 Hostless Capture",
21395 0, 0, 0, 0),
21396 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
21397 "Quaternary TDM4 Hostless Playback",
21398 0, 0, 0, 0),
21399 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
21400 "Quaternary TDM4 Hostless Capture",
21401 0, 0, 0, 0),
21402 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
21403 "Quaternary TDM5 Hostless Playback",
21404 0, 0, 0, 0),
21405 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
21406 "Quaternary TDM5 Hostless Capture",
21407 0, 0, 0, 0),
21408 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
21409 "Quaternary TDM6 Hostless Playback",
21410 0, 0, 0, 0),
21411 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
21412 "Quaternary TDM6 Hostless Capture",
21413 0, 0, 0, 0),
21414 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
21415 "Quaternary TDM7 Hostless Playback",
21416 0, 0, 0, 0),
21417 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
21418 "Quaternary TDM7 Hostless Capture",
21419 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021420 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
21421 "Quinary TDM0 Hostless Playback",
21422 0, 0, 0, 0),
21423 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
21424 "Quinary TDM0 Hostless Capture",
21425 0, 0, 0, 0),
21426 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
21427 "Quinary TDM1 Hostless Playback",
21428 0, 0, 0, 0),
21429 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
21430 "Quinary TDM1 Hostless Capture",
21431 0, 0, 0, 0),
21432 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
21433 "Quinary TDM2 Hostless Playback",
21434 0, 0, 0, 0),
21435 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
21436 "Quinary TDM2 Hostless Capture",
21437 0, 0, 0, 0),
21438 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
21439 "Quinary TDM3 Hostless Playback",
21440 0, 0, 0, 0),
21441 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
21442 "Quinary TDM3 Hostless Capture",
21443 0, 0, 0, 0),
21444 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
21445 "Quinary TDM4 Hostless Playback",
21446 0, 0, 0, 0),
21447 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
21448 "Quinary TDM4 Hostless Capture",
21449 0, 0, 0, 0),
21450 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
21451 "Quinary TDM5 Hostless Playback",
21452 0, 0, 0, 0),
21453 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
21454 "Quinary TDM5 Hostless Capture",
21455 0, 0, 0, 0),
21456 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
21457 "Quinary TDM6 Hostless Playback",
21458 0, 0, 0, 0),
21459 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
21460 "Quinary TDM6 Hostless Capture",
21461 0, 0, 0, 0),
21462 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
21463 "Quinary TDM7 Hostless Playback",
21464 0, 0, 0, 0),
21465 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
21466 "Quinary TDM7 Hostless Capture",
21467 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021468 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
21469 "Senary TDM0 Hostless Playback",
21470 0, 0, 0, 0),
21471 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
21472 "Senary TDM0 Hostless Capture",
21473 0, 0, 0, 0),
21474 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
21475 "Senary TDM1 Hostless Playback",
21476 0, 0, 0, 0),
21477 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
21478 "Senary TDM1 Hostless Capture",
21479 0, 0, 0, 0),
21480 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
21481 "Senary TDM2 Hostless Playback",
21482 0, 0, 0, 0),
21483 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
21484 "Senary TDM2 Hostless Capture",
21485 0, 0, 0, 0),
21486 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
21487 "Senary TDM3 Hostless Playback",
21488 0, 0, 0, 0),
21489 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
21490 "Senary TDM3 Hostless Capture",
21491 0, 0, 0, 0),
21492 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
21493 "Senary TDM4 Hostless Playback",
21494 0, 0, 0, 0),
21495 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
21496 "Senary TDM4 Hostless Capture",
21497 0, 0, 0, 0),
21498 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
21499 "Senary TDM5 Hostless Playback",
21500 0, 0, 0, 0),
21501 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
21502 "Senary TDM5 Hostless Capture",
21503 0, 0, 0, 0),
21504 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
21505 "Senary TDM6 Hostless Playback",
21506 0, 0, 0, 0),
21507 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
21508 "Senary TDM6 Hostless Capture",
21509 0, 0, 0, 0),
21510 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
21511 "Senary TDM7 Hostless Playback",
21512 0, 0, 0, 0),
21513 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
21514 "Senary TDM7 Hostless Capture",
21515 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021516
21517 /* LSM */
21518 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
21519 0, 0, 0, 0),
21520 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
21521 0, 0, 0, 0),
21522 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
21523 0, 0, 0, 0),
21524 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
21525 0, 0, 0, 0),
21526 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
21527 0, 0, 0, 0),
21528 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
21529 0, 0, 0, 0),
21530 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
21531 0, 0, 0, 0),
21532 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
21533 0, 0, 0, 0),
21534 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
21535 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
21536 /* Backend AIF */
21537 /* Stream name equals to backend dai link stream name */
21538 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
21539 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
21540 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020021541 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
21542 0, 0, 0, 0),
21543 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
21544 0, 0, 0, 0),
21545 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
21546 0, 0, 0, 0),
21547 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
21548 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021549 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
21550 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
21551 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
21552 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
21553 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
21554 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070021555 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
21556 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021557 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
21558 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
21559 0, 0, 0, 0),
21560 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
21561 0, 0, 0, 0),
21562 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
21563 0, 0, 0, 0),
21564 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
21565 "Secondary MI2S Playback SD1",
21566 0, 0, 0, 0),
21567 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
21568 0, 0, 0, 0),
21569 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
21570 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021571 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
21572 0, 0, 0, 0),
21573 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
21574 0, 0, 0, 0),
21575 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
21576 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021577 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
21578 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021579 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
21580 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021581 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
21582 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021583 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
21584 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021585 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
21586 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
21587 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
21588 0, 0, 0, 0),
21589 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
21590 0, 0, 0, 0),
21591 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
21592 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021593 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
21594 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021595 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
21596 0, 0, 0, 0),
21597 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
21598 0, 0, 0, 0),
21599 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
21600 0, 0, 0, 0),
21601 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
21602 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
21603 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
21604 0, 0, 0, 0),
21605 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
21606 0, 0, 0, 0),
21607 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
21608 0, 0, 0, 0),
21609 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
21610 0, 0, 0, 0),
21611 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
21612 0, 0, 0, 0),
21613 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
21614 0, 0, 0, 0),
21615 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
21616 0, 0, 0, 0),
21617 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
21618 0, 0, 0, 0),
21619 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
21620 0, 0, 0, 0),
21621 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
21622 0, 0, 0, 0),
21623 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
21624 0, 0, 0, 0),
21625 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
21626 0, 0, 0, 0),
21627 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
21628 0, 0, 0, 0),
21629 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
21630 0, 0, 0, 0),
21631 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
21632 0, 0, 0, 0),
21633 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
21634 0, 0, 0, 0),
21635 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
21636 0, 0, 0, 0),
21637 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
21638 0, 0, 0, 0),
21639 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
21640 0, 0, 0, 0),
21641 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
21642 0, 0, 0, 0),
21643 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
21644 0, 0, 0, 0),
21645 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
21646 0, 0, 0, 0),
21647 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
21648 0, 0, 0, 0),
21649 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
21650 0, 0, 0, 0),
21651 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
21652 0, 0, 0, 0),
21653 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
21654 0, 0, 0, 0),
21655 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
21656 0, 0, 0, 0),
21657 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
21658 0, 0, 0, 0),
21659 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
21660 0, 0, 0, 0),
21661 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
21662 0, 0, 0, 0),
21663 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
21664 0, 0, 0, 0),
21665 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
21666 0, 0, 0, 0),
21667 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
21668 0, 0, 0, 0),
21669 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
21670 0, 0, 0, 0),
21671 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
21672 0, 0, 0, 0),
21673 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
21674 0, 0, 0, 0),
21675 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
21676 0, 0, 0, 0),
21677 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
21678 0, 0, 0, 0),
21679 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
21680 0, 0, 0, 0),
21681 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
21682 0, 0, 0, 0),
21683 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
21684 0, 0, 0, 0),
21685 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
21686 0, 0, 0, 0),
21687 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
21688 0, 0, 0, 0),
21689 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
21690 0, 0, 0, 0),
21691 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
21692 0, 0, 0, 0),
21693 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
21694 0, 0, 0, 0),
21695 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
21696 0, 0, 0, 0),
21697 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
21698 0, 0, 0, 0),
21699 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
21700 0, 0, 0, 0),
21701 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
21702 0, 0, 0, 0),
21703 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
21704 0, 0, 0, 0),
21705 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
21706 0, 0, 0, 0),
21707 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
21708 0, 0, 0, 0),
21709 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
21710 0, 0, 0, 0),
21711 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
21712 0, 0, 0, 0),
21713 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
21714 0, 0, 0, 0),
21715 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
21716 0, 0, 0, 0),
21717 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
21718 0, 0, 0, 0),
21719 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
21720 0, 0, 0, 0),
21721 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
21722 0, 0, 0, 0),
21723 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
21724 0, 0, 0, 0),
21725 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
21726 0, 0, 0, 0),
21727 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
21728 0, 0, 0, 0),
21729 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
21730 0, 0, 0, 0),
21731 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
21732 0, 0, 0, 0),
21733 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
21734 0, 0, 0, 0),
21735 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
21736 0, 0, 0, 0),
21737 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
21738 0, 0, 0, 0),
21739 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
21740 0, 0, 0, 0),
21741 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
21742 0, 0, 0, 0),
21743 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
21744 0, 0, 0, 0),
21745 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
21746 0, 0, 0, 0),
21747 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
21748 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021749 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
21750 0, 0, 0, 0),
21751 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
21752 0, 0, 0, 0),
21753 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
21754 0, 0, 0, 0),
21755 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
21756 0, 0, 0, 0),
21757 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
21758 0, 0, 0, 0),
21759 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
21760 0, 0, 0, 0),
21761 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
21762 0, 0, 0, 0),
21763 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
21764 0, 0, 0, 0),
21765 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
21766 0, 0, 0, 0),
21767 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
21768 0, 0, 0, 0),
21769 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
21770 0, 0, 0, 0),
21771 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
21772 0, 0, 0, 0),
21773 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
21774 0, 0, 0, 0),
21775 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
21776 0, 0, 0, 0),
21777 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
21778 0, 0, 0, 0),
21779 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
21780 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021781 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
21782 0, 0, 0, 0),
21783 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
21784 0, 0, 0, 0),
21785 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
21786 0, 0, 0, 0),
21787 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
21788 0, 0, 0, 0),
21789 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
21790 0, 0, 0, 0),
21791 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
21792 0, 0, 0, 0),
21793 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
21794 0, 0, 0, 0),
21795 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
21796 0, 0, 0, 0),
21797 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
21798 0, 0, 0, 0),
21799 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
21800 0, 0, 0, 0),
21801 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
21802 0, 0, 0, 0),
21803 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
21804 0, 0, 0, 0),
21805 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
21806 0, 0, 0, 0),
21807 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
21808 0, 0, 0, 0),
21809 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
21810 0, 0, 0, 0),
21811 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
21812 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021813 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
21814 0, 0, 0, 0),
21815 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
21816 0, 0, 0, 0),
21817 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
21818 0, 0, 0, 0),
21819 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
21820 0, 0, 0, 0),
21821 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
21822 0, 0, 0, 0),
21823 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
21824 0, 0, 0, 0),
21825 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
21826 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021827 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
21828 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021829 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
21830 0, 0, 0, 0),
21831 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
21832 0, 0, 0, 0),
21833 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
21834 0, 0, 0, 0),
21835 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
21836 0, 0, 0, 0),
21837 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
21838 0, 0, 0, 0),
21839 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
21840 0, 0, 0, 0),
21841 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
21842 0, 0, 0, 0),
21843 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
21844 0, 0, 0, 0),
21845 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
21846 0, 0, 0, 0),
21847 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
21848 0, 0, 0, 0),
21849 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
21850 0, 0, 0, 0),
21851 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
21852 0, 0, 0, 0),
21853 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
21854 0, 0, 0, 0),
21855 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
21856 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021857 /* incall */
21858 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
21859 0, 0, 0, 0),
21860 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
21861 0, 0, 0, 0),
21862 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
21863 0, 0, 0, 0),
21864 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
21865 0, 0, 0, 0),
21866 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
21867 0, 0, 0, 0),
21868 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
21869 0, 0, 0, 0),
21870 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
21871 0, 0, 0, 0),
21872 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
21873 0, 0, 0, 0),
21874 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
21875
21876 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
21877 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
21878 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
21879 0, 0, 0, 0),
21880 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
21881 0, 0, 0, 0),
21882 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
21883 0, 0, 0, 0),
21884 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
21885 0, 0, 0, 0),
21886 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
21887 0, 0, 0, 0),
21888 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
21889 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021890 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
21891 0, 0, 0, 0),
21892 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
21893 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021894 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
21895 0, 0, 0, 0),
21896 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
21897 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021898 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
21899 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
21900 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
21901 0, 0, 0, 0),
21902 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
21903 0, 0, 0, 0),
21904 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
21905 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
21906 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
21907 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
21908 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
21909 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
21910 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
21911 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
21912 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
21913 /* In- call recording */
21914 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
21915 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053021916 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
21917 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021918 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
21919 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
21920
21921 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
21922 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053021923 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
21924 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021925 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
21926 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
21927
21928 /* Switch Definitions */
21929 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
21930 &slim_fm_switch_mixer_controls),
21931 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
21932 &slim1_fm_switch_mixer_controls),
21933 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
21934 &slim3_fm_switch_mixer_controls),
21935 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
21936 &slim4_fm_switch_mixer_controls),
21937 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
21938 &slim6_fm_switch_mixer_controls),
21939 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21940 &pcm_rx_switch_mixer_controls),
21941 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21942 &int0_mi2s_rx_switch_mixer_controls),
21943 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21944 &int4_mi2s_rx_switch_mixer_controls),
21945 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21946 &pri_mi2s_rx_switch_mixer_controls),
21947 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21948 &sec_mi2s_rx_switch_mixer_controls),
21949 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21950 &tert_mi2s_rx_switch_mixer_controls),
21951 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21952 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053021953 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21954 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080021955 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
21956 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021957 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21958 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021959 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
21960 &hfp_pri_aux_switch_mixer_controls),
21961 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
21962 &hfp_aux_switch_mixer_controls),
21963 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
21964 &hfp_int_switch_mixer_controls),
21965 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
21966 &hfp_slim7_switch_mixer_controls),
21967 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
21968 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021969 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
21970 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021971 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021972 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021973 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021974 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021975
21976 /* Mixer definitions */
21977 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21978 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
21979 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21980 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
21981 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21982 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
21983 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21984 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
21985 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21986 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
21987 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21988 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053021989 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21990 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021991 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
21992 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
21993 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
21994 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070021995 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
21996 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020021997 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21998 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
21999 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22000 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022001 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22002 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
22003 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22004 quaternary_mi2s_rx_mixer_controls,
22005 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
22006 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22007 tertiary_mi2s_rx_mixer_controls,
22008 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
22009 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22010 secondary_mi2s_rx_mixer_controls,
22011 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
22012 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22013 secondary_mi2s_rx2_mixer_controls,
22014 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
22015 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22016 primary_mi2s_rx_mixer_controls,
22017 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
22018 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22019 int0_mi2s_rx_mixer_controls,
22020 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
22021 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22022 int4_mi2s_rx_mixer_controls,
22023 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
22024 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22025 quinary_mi2s_rx_mixer_controls,
22026 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022027 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22028 senary_mi2s_rx_mixer_controls,
22029 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022030 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22031 pri_tdm_rx_0_mixer_controls,
22032 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
22033 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22034 pri_tdm_rx_1_mixer_controls,
22035 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
22036 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22037 pri_tdm_rx_2_mixer_controls,
22038 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
22039 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22040 pri_tdm_rx_3_mixer_controls,
22041 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
22042 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22043 pri_tdm_tx_0_mixer_controls,
22044 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
22045 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22046 sec_tdm_rx_0_mixer_controls,
22047 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
22048 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22049 sec_tdm_rx_1_mixer_controls,
22050 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
22051 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22052 sec_tdm_rx_2_mixer_controls,
22053 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
22054 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22055 sec_tdm_rx_3_mixer_controls,
22056 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
22057 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22058 sec_tdm_tx_0_mixer_controls,
22059 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
22060 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22061 tert_tdm_rx_0_mixer_controls,
22062 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
22063 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22064 tert_tdm_tx_0_mixer_controls,
22065 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
22066 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22067 tert_tdm_rx_1_mixer_controls,
22068 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
22069 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22070 tert_tdm_rx_2_mixer_controls,
22071 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
22072 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22073 tert_tdm_rx_3_mixer_controls,
22074 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
22075 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22076 tert_tdm_rx_4_mixer_controls,
22077 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
22078 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22079 quat_tdm_rx_0_mixer_controls,
22080 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
22081 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22082 quat_tdm_tx_0_mixer_controls,
22083 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
22084 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22085 quat_tdm_rx_1_mixer_controls,
22086 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
22087 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22088 quat_tdm_rx_2_mixer_controls,
22089 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
22090 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22091 quat_tdm_rx_3_mixer_controls,
22092 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022093 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22094 quin_tdm_rx_0_mixer_controls,
22095 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
22096 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22097 quin_tdm_tx_0_mixer_controls,
22098 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
22099 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22100 quin_tdm_rx_1_mixer_controls,
22101 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
22102 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22103 quin_tdm_rx_2_mixer_controls,
22104 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
22105 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22106 quin_tdm_rx_3_mixer_controls,
22107 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022108 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22109 sen_tdm_tx_0_mixer_controls,
22110 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
22111 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22112 sen_tdm_rx_0_mixer_controls,
22113 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
22114 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22115 sen_tdm_rx_1_mixer_controls,
22116 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
22117 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22118 sen_tdm_rx_2_mixer_controls,
22119 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
22120 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22121 sen_tdm_rx_3_mixer_controls,
22122 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022123 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22124 wsa_cdc_dma_rx_0_mixer_controls,
22125 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
22126 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22127 wsa_cdc_dma_rx_1_mixer_controls,
22128 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022129 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22130 rx_cdc_dma_rx_0_mixer_controls,
22131 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
22132 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22133 rx_cdc_dma_rx_1_mixer_controls,
22134 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
22135 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22136 rx_cdc_dma_rx_2_mixer_controls,
22137 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
22138 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22139 rx_cdc_dma_rx_3_mixer_controls,
22140 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
22141 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22142 rx_cdc_dma_rx_4_mixer_controls,
22143 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
22144 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
22145 rx_cdc_dma_rx_5_mixer_controls,
22146 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
22147 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
22148 rx_cdc_dma_rx_6_mixer_controls,
22149 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
22150 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
22151 rx_cdc_dma_rx_7_mixer_controls,
22152 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022153 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
22154 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
22155 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
22156 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
22157 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
22158 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
22159 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
22160 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
22161 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
22162 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
22163 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
22164 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
22165 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
22166 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
22167 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
22168 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022169 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
22170 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022171 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
22172 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022173 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
22174 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
22175 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
22176 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
22177 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
22178 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
22179 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
22180 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022181 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
22182 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053022183 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
22184 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022185 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
22186 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
22187 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
22188 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022189 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22190 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
22191 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22192 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
22193 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22194 tert_auxpcm_rx_mixer_controls,
22195 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
22196 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22197 quat_auxpcm_rx_mixer_controls,
22198 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022199 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22200 quin_auxpcm_rx_mixer_controls,
22201 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022202 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22203 sen_auxpcm_rx_mixer_controls,
22204 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022205 /* incall */
22206 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
22207 incall_music_delivery_mixer_controls,
22208 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
22209 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22210 incall_music2_delivery_mixer_controls,
22211 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
22212 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22213 slimbus_4_rx_mixer_controls,
22214 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
22215 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22216 slimbus_6_rx_mixer_controls,
22217 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
22218 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22219 usb_audio_rx_mixer_controls,
22220 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
22221 /* Voice Mixer */
22222 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
22223 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
22224 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
22225 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
22226 SND_SOC_NOPM, 0, 0,
22227 sec_i2s_rx_voice_mixer_controls,
22228 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
22229 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
22230 SND_SOC_NOPM, 0, 0,
22231 sec_mi2s_rx_voice_mixer_controls,
22232 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
22233 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
22234 SND_SOC_NOPM, 0, 0,
22235 slimbus_rx_voice_mixer_controls,
22236 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
22237 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
22238 SND_SOC_NOPM, 0, 0,
22239 bt_sco_rx_voice_mixer_controls,
22240 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
22241 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
22242 SND_SOC_NOPM, 0, 0,
22243 afe_pcm_rx_voice_mixer_controls,
22244 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
22245 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
22246 SND_SOC_NOPM, 0, 0,
22247 aux_pcm_rx_voice_mixer_controls,
22248 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
22249 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
22250 SND_SOC_NOPM, 0, 0,
22251 sec_aux_pcm_rx_voice_mixer_controls,
22252 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
22253 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
22254 SND_SOC_NOPM, 0, 0,
22255 tert_aux_pcm_rx_voice_mixer_controls,
22256 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
22257 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
22258 SND_SOC_NOPM, 0, 0,
22259 quat_aux_pcm_rx_voice_mixer_controls,
22260 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022261 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
22262 SND_SOC_NOPM, 0, 0,
22263 quin_aux_pcm_rx_voice_mixer_controls,
22264 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022265 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
22266 SND_SOC_NOPM, 0, 0,
22267 sen_aux_pcm_rx_voice_mixer_controls,
22268 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022269 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
22270 SND_SOC_NOPM, 0, 0,
22271 hdmi_rx_voice_mixer_controls,
22272 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
22273 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
22274 SND_SOC_NOPM, 0, 0,
22275 mi2s_rx_voice_mixer_controls,
22276 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
22277 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
22278 SND_SOC_NOPM, 0, 0,
22279 pri_mi2s_rx_voice_mixer_controls,
22280 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
22281 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
22282 SND_SOC_NOPM, 0, 0,
22283 int0_mi2s_rx_voice_mixer_controls,
22284 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
22285 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
22286 SND_SOC_NOPM, 0, 0,
22287 int4_mi2s_rx_voice_mixer_controls,
22288 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
22289 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
22290 SND_SOC_NOPM, 0, 0,
22291 tert_mi2s_rx_voice_mixer_controls,
22292 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
22293 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
22294 SND_SOC_NOPM, 0, 0,
22295 quat_mi2s_rx_voice_mixer_controls,
22296 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
22297 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
22298 SND_SOC_NOPM, 0, 0,
22299 quin_mi2s_rx_voice_mixer_controls,
22300 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022301 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
22302 SND_SOC_NOPM, 0, 0,
22303 pri_tdm_rx_0_voice_mixer_controls,
22304 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
22305 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
22306 SND_SOC_NOPM, 0, 0,
22307 pri_tdm_rx_1_voice_mixer_controls,
22308 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
22309 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
22310 SND_SOC_NOPM, 0, 0,
22311 pri_tdm_rx_2_voice_mixer_controls,
22312 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
22313 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
22314 SND_SOC_NOPM, 0, 0,
22315 pri_tdm_rx_3_voice_mixer_controls,
22316 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022317 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
22318 SND_SOC_NOPM, 0, 0,
22319 sen_mi2s_rx_voice_mixer_controls,
22320 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022321 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
22322 SND_SOC_NOPM, 0, 0,
22323 quat_tdm_rx_2_voice_mixer_controls,
22324 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022325 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
22326 SND_SOC_NOPM, 0, 0,
22327 wsa_cdc_dma_rx_0_voice_mixer_controls,
22328 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
22329 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
22330 SND_SOC_NOPM, 0, 0,
22331 rx_cdc_dma_rx_0_voice_mixer_controls,
22332 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022333 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
22334 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
22335 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022336 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
22337 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
22338 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
22339 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
22340 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
22341 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
22342 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22343 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
22344 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22345 int_bt_a2dp_rx_mixer_controls,
22346 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
22347 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22348 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
22349 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22350 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
22351 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22352 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
22353 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22354 tx_voice2_stub_mixer_controls,
22355 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
22356 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22357 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
22358 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
22359 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
22360 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
22361 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
22362 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22363 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
22364 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
22365 SND_SOC_NOPM, 0, 0,
22366 slimbus_6_rx_voice_mixer_controls,
22367 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
22368 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22369 slimbus_7_rx_voice_mixer_controls,
22370 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
22371 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22372 slimbus_8_rx_voice_mixer_controls,
22373 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
22374 /* port mixer */
22375 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
22376 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
22377 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
22378 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
22379 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
22380 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
22381 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
22382 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
22383 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
22384 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
22385 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
22386 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
22387 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
22388 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
22389 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022390 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
22391 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
22392 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022393 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
22394 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
22395 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022396 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22397 sbus_1_rx_port_mixer_controls,
22398 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
22399 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22400 bt_sco_rx_port_mixer_controls,
22401 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
22402 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
22403 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
22404 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
22405 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
22406 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
22407 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
22408 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
22409 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
22410 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070022411 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070022412 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
22413 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022414 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
22415 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
22416 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
22417 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
22418 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
22419 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
22420 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
22421 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
22422 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
22423 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22424 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
22425 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22426 primary_mi2s_rx_port_mixer_controls,
22427 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
22428 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22429 sec_mi2s_rx_port_mixer_controls,
22430 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
22431 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22432 tert_mi2s_rx_port_mixer_controls,
22433 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
22434 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22435 quat_mi2s_rx_port_mixer_controls,
22436 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022437 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22438 quin_mi2s_rx_port_mixer_controls,
22439 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022440 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22441 sen_mi2s_rx_port_mixer_controls,
22442 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022443 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22444 pri_tdm_rx_0_port_mixer_controls,
22445 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
22446 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22447 pri_tdm_rx_1_port_mixer_controls,
22448 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
22449 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22450 pri_tdm_rx_2_port_mixer_controls,
22451 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
22452 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22453 pri_tdm_rx_3_port_mixer_controls,
22454 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
22455 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22456 sec_tdm_rx_0_port_mixer_controls,
22457 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
22458 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22459 sec_tdm_rx_1_port_mixer_controls,
22460 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
22461 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22462 sec_tdm_rx_2_port_mixer_controls,
22463 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
22464 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22465 sec_tdm_rx_3_port_mixer_controls,
22466 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070022467 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
22468 sec_tdm_rx_7_port_mixer_controls,
22469 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022470 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22471 tert_tdm_rx_0_port_mixer_controls,
22472 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
22473 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22474 tert_tdm_rx_1_port_mixer_controls,
22475 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
22476 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22477 tert_tdm_rx_2_port_mixer_controls,
22478 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
22479 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22480 tert_tdm_rx_3_port_mixer_controls,
22481 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
22482 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22483 quat_tdm_rx_0_port_mixer_controls,
22484 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
22485 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22486 quat_tdm_rx_1_port_mixer_controls,
22487 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
22488 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22489 quat_tdm_rx_2_port_mixer_controls,
22490 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
22491 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22492 quat_tdm_rx_3_port_mixer_controls,
22493 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050022494 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
22495 quat_tdm_rx_7_port_mixer_controls,
22496 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022497 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22498 quin_tdm_rx_0_port_mixer_controls,
22499 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
22500 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22501 quin_tdm_rx_1_port_mixer_controls,
22502 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
22503 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22504 quin_tdm_rx_2_port_mixer_controls,
22505 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
22506 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22507 quin_tdm_rx_3_port_mixer_controls,
22508 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022509 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22510 sen_tdm_rx_0_port_mixer_controls,
22511 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
22512 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22513 sen_tdm_rx_1_port_mixer_controls,
22514 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
22515 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22516 sen_tdm_rx_2_port_mixer_controls,
22517 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
22518 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22519 sen_tdm_rx_3_port_mixer_controls,
22520 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022521 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22522 int0_mi2s_rx_port_mixer_controls,
22523 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
22524 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22525 int4_mi2s_rx_port_mixer_controls,
22526 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022527 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22528 wsa_cdc_dma_rx_0_port_mixer_controls,
22529 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
22530 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22531 rx_cdc_dma_rx_0_port_mixer_controls,
22532 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022533 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
22534 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
22535 ARRAY_SIZE(tx_qchat_mixer_controls)),
22536 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
22537 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
22538 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
22539 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
22540 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
22541 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022542 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
22543 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
22544 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022545 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
22546 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
22547 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022548 /* lsm mixer definitions */
22549 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
22550 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
22551 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
22552 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
22553 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
22554 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
22555 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
22556 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
22557 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
22558 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
22559 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
22560 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
22561 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
22562 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
22563 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
22564 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
22565 /* Virtual Pins to force backends ON atm */
22566 SND_SOC_DAPM_OUTPUT("BE_OUT"),
22567 SND_SOC_DAPM_INPUT("BE_IN"),
22568
22569 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
22570 &slim0_rx_vi_fb_lch_mux),
22571 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
22572 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022573 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
22574 &wsa_rx_0_vi_fb_lch_mux),
22575 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
22576 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022577 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
22578 &mi2s_rx_vi_fb_mux),
22579 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
22580 &int4_mi2s_rx_vi_fb_mono_ch_mux),
22581 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
22582 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
22583
22584 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
22585 &voc_ext_ec_mux),
22586 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
22587 &ext_ec_ref_mux_ul1),
22588 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
22589 &ext_ec_ref_mux_ul2),
22590 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
22591 &ext_ec_ref_mux_ul3),
22592 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
22593 &ext_ec_ref_mux_ul4),
22594 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
22595 &ext_ec_ref_mux_ul5),
22596 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
22597 &ext_ec_ref_mux_ul6),
22598 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
22599 &ext_ec_ref_mux_ul8),
22600 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
22601 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022602 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
22603 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022604 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
22605 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022606 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
22607 &ext_ec_ref_mux_ul17),
22608 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
22609 &ext_ec_ref_mux_ul18),
22610 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
22611 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080022612 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
22613 &ext_ec_ref_mux_ul28),
22614 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
22615 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022616};
22617
22618static const struct snd_soc_dapm_route intercon[] = {
22619 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22620 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22621 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22622 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22623 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22624 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22625 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22626 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22627 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22628 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22629 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22630 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22631 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22632 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22633 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22634 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022635 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022636 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
22637
22638 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22639 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22640 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22641 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22642 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22643 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22644 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22645 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22646 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22647 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22648 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22649 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22650 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22651 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22652 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22653 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022654 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022655 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
22656
22657 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22658 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22659 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22660 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22661 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22662 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22663 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22664 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22665 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22666 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22667 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22668 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22669 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22670 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22671 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22672 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022673 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022674 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
22675
22676 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22677 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22678 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22679 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22680 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22681 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22682 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22683 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22684 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22685 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22686 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22687 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22688 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22689 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22690 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22691 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022692 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022693 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
22694
22695 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22696 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22697 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22698 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22699 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22700 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22701 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22702 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22703 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22704 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22705 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22706 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22707 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22708 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22709 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22710 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022711 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022712 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
22713
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022714 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
22715 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
22716 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
22717 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
22718 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
22719 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
22720 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
22721 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
22722 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
22723 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
22724 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
22725 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
22726 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
22727 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
22728 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
22729 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022730 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022731 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
22732
22733 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
22734 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
22735 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
22736 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
22737 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
22738 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
22739 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
22740 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
22741 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
22742 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
22743 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
22744 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
22745 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
22746 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
22747 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
22748 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022749 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022750 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
22751
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022752 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
22753 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
22754 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
22755 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
22756 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
22757 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
22758 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
22759 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
22760 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
22761 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
22762 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
22763 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
22764 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
22765 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
22766 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
22767 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022768 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022769 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
22770
22771 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
22772 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
22773 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
22774 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
22775 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
22776 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
22777 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
22778 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
22779 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
22780 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
22781 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
22782 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
22783 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
22784 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
22785 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
22786 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022787 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022788 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
22789
22790 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
22791 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
22792 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
22793 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
22794 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
22795 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
22796 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
22797 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
22798 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
22799 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
22800 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
22801 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
22802 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
22803 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
22804 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
22805 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022806 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022807 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
22808
22809 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
22810 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
22811 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
22812 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
22813 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
22814 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
22815 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
22816 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
22817 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
22818 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
22819 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
22820 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
22821 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
22822 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
22823 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
22824 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022825 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022826 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
22827
22828 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
22829 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
22830 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
22831 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
22832 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
22833 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
22834 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
22835 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
22836 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
22837 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
22838 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
22839 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
22840 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
22841 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
22842 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
22843 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022844 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022845 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
22846
22847 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
22848 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
22849 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
22850 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
22851 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
22852 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
22853 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
22854 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
22855 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
22856 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
22857 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
22858 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
22859 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
22860 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
22861 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
22862 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022863 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022864 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
22865
22866 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
22867 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
22868 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
22869 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
22870 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
22871 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
22872 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
22873 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
22874 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
22875 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
22876 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
22877 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
22878 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
22879 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
22880 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
22881 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022882 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022883 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
22884
22885 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
22886 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
22887 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
22888 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
22889 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
22890 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
22891 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
22892 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
22893 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
22894 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
22895 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
22896 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
22897 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
22898 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
22899 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
22900 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022901 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022902 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
22903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022904 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
22905 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
22906 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
22907 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
22908 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
22909 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
22910 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
22911 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
22912 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
22913 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
22914 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
22915 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
22916 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
22917 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
22918 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
22919 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022920 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022921 {"HDMI", NULL, "HDMI Mixer"},
22922
22923 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
22924 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
22925 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
22926 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
22927 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
22928 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
22929 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
22930 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
22931 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
22932 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
22933 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
22934 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
22935 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
22936 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
22937 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
22938 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022939 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022940 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
22941
Karthikeyan Mani57550082018-05-03 18:43:58 -070022942 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
22943 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
22944 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
22945 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
22946 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
22947 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
22948 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
22949 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
22950 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
22951 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
22952 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
22953 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
22954 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
22955 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
22956 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
22957 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022958 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022959 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
22960
Ralf Herzc8701f72018-06-20 11:37:35 +020022961 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22962 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22963 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22964 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22965 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22966 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22967 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22968 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22969 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22970 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22971 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22972 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22973 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22974 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22975 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22976 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022977 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022978 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
22979
22980 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22981 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22982 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22983 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22984 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22985 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22986 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22987 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22988 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22989 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22990 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22991 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22992 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22993 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22994 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22995 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022996 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022997 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022998
22999 /* incall */
23000 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
23001 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
23002 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
23003 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
23004 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
23005 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23006 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23007 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23008 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23009 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
23010 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23011 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23012 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23013 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23014 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
23015
23016 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23017 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23018 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23019 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23020 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23021 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23022 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23023 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23024 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23025 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23026 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23027 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23028 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23029 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23030 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23031 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023032 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023033 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
23034
23035 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23036 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23037 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23038 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23039 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23040 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23041 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23042 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23043 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23044 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23045 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23046 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23047 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23048 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23049 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23050 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023051 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023052 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
23053
Surendar Karka3ef3d812018-09-28 18:52:35 +053023054 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23055 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23056 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23057 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23058 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23059 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23060 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23061 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23062 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23063 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23064 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23065 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23066 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23067 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23068 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23069 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23070 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
23071 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
23072
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023073 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23074 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23075 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23076 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23077 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23078 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23079 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23080 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23081 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23082 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23083 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23084 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23085 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23086 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23087 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23088 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023089 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023090 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
23091
23092 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23093 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23094 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23095 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23096 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23097 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23098 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
23099 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23100 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23101 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023102 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023103 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23104 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023105 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023106 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023107 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023108 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023109 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023110 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023111 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023112 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023113 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023114 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023115 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023116 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023117 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023118 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023119 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023120 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23121 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23122 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23123 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23124 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023125 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23126 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023127 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023128 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023129 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23130 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23131 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023132 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23133 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23134 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23135 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23136 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23137 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023138 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023139 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23140 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23141 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023142 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23143 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023144 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023145 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023146 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023147 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023148 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023149 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023150 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023151 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23152 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023153 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023154 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023155 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023156 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023157 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23158 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23159 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023160 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023161 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23162 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23163 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023164
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023165 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23166 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23167 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23168 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23169 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23170 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23171 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23172 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23173 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23174 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23175 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23176 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23177 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23178 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23179 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23180 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023181 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023182 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
23183
23184 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23185 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23186 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23187 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23188 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23189 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23190 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23191 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23192 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23193 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23194 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23195 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23196 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23197 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23198 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023199 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023200 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
23201
23202 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23203 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23204 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23205 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23206 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23207 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23208 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23209 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23210 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23211 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23212 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23213 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23214 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23215 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023216 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023217 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
23218
23219 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23220 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23221 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23222 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23223 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23224 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23225 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23226 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23227 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23228 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23229 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23230 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23231 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23232 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023233 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023234 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
23235
23236 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23237 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
23238
23239 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23240 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23241
23242 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23243 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23244 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23245 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23246 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23247 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23248 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23249 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23250 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23251 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23252 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23253 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23254 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23255 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23256 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023257 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023258 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
23259
23260 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23261 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23262 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23263 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23264 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23265 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23266 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23267 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23268 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23269 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23270 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23271 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23272 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23273 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23274 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23275 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
23276
23277 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23278 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23279 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23280 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23281 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23282 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23283 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23284 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23285 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23286 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23287 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23288 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23289 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23290 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23291 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23292 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
23293
23294 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23295 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23296 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23297 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23298 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23299 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23300 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23301 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23302 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23303 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23304 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23305 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23306 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23307 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23308 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23309 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23310 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23311 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
23312
Karthikeyan Manic3700752019-03-11 18:33:53 -070023313 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23314 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23315 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23316 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23317 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23318 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23319 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23320 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23321 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23322 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23323 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23324 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23325 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23326 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23327 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23328 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
23329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023330 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23331 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23332 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23333 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23334 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23335 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23336 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23337 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23338 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23339 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23340 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23341 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23342 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23343 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23344 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23345 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023346 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023347 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
23348
23349 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23350 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23351 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23352 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23353 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23354 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23355 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23356 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23357 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23358 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23359 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23360 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23361 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23362 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23363 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23364 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023365 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023366 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
23367
23368 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23369 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23370 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23371 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23372 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23373 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23374 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23375 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23376 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23377 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23378 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23379 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23380 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23381 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23382 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23383 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023384 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023385 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
23386
23387 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23388 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23389 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23390 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23391 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23392 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23393 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23394 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23395 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23396 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23397 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23398 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23399 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23400 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23401 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23402 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023403 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023404 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
23405
23406 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23407 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23408 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23409 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23410 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23411 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23412 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23413 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23414 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23415 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23416 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23417 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23418 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23419 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23420 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23421 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23422 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
23423
23424 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23425 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23426 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23427 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23428 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23429 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23430 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23431 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23432 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23433 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23434 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23435 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23436 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23437 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23438 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23439 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023440 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023441 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
23442
23443 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23444 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23445 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23446 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23447 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23448 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23449 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23450 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23451 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23452 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23453 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23454 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23455 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23456 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23457 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23458 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023459 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023460 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
23461
23462 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23463 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23464 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23465 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23466 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23467 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23468 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23469 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23470 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23471 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23472 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23473 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23474 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23475 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23476 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23477 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023478 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023479 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
23480
23481 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23482 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23483 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23484 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23485 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23486 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23487 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23488 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23489 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23490 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23491 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23492 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23493 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23494 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23495 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23496 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023497 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023498 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
23499
23500 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23501 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23502 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23503 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23504 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23505 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23506 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23507 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23508 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23509 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23510 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23511 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23512 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23513 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23514 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23515 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23516 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
23517
23518 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23519 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23520 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23521 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23522 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23523 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23524 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23525 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23526 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23527 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23528 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23529 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23530 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23531 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23532 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23533 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023534 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023535 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
23536
23537 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23538 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23539 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23540 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23541 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23542 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23543 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23544 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23545 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23546 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23547 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23548 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23549 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23550 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23551 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23552 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23553 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
23554
23555 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23556 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23557 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23558 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23559 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23560 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23561 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23562 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23563 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23564 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23565 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23566 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23567 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23568 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23569 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23570 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023571 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023572 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
23573
23574 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23575 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23576 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23577 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23578 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23579 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23580 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23581 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23582 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23583 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23584 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23585 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23586 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23587 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23588 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23589 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023590 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023591 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
23592
23593 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23594 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23595 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23596 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23597 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23598 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23599 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23600 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23601 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23602 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23603 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23604 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23605 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23606 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23607 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23608 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023609 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023610 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
23611
23612 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
23613 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
23614 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
23615 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
23616 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
23617 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
23618 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
23619 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
23620 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
23621 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
23622 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
23623 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
23624 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
23625 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
23626 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
23627 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023628 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023629 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
23630
23631 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23632 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23633 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23634 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23635 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23636 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23637 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23638 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23639 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23640 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23641 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23642 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23643 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23644 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23645 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23646 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23647 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023648 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023649 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
23650
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023651 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23652 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23653 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23654 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23655 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23656 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23657 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23658 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23659 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23660 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23661 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23662 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23663 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23664 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23665 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23666 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23667 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
23668
23669 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23670 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23671 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23672 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23673 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23674 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23675 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23676 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23677 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23678 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23679 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23680 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23681 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23682 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23683 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23684 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23685 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023686 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023687 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
23688
23689 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23690 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23691 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23692 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23693 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23694 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23695 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23696 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23697 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23698 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23699 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23700 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23701 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23702 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23703 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23704 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23705 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023706 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023707 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
23708
23709 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23710 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23711 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23712 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23713 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23714 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23715 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23716 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23717 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23718 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23719 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23720 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23721 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23722 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23723 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23724 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23725 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023726 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023727 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
23728
Rohit Kumara5077932017-09-10 22:05:05 +053023729 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23730 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23731 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23732 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23733 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23734 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23735 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23736 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23737 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23738 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23739 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23740 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23741 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23742 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23743 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23744 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23745 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023746 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023747 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
23748
23749 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23750 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23751 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23752 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23753 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23754 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23755 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23756 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23757 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23758 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23759 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23760 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23761 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23762 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23763 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23764 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23765 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
23766
23767 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23768 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23769 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23770 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23771 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23772 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23773 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23774 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23775 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23776 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23777 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23778 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23779 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23780 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23781 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23782 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23783 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023784 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023785 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
23786
23787 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23788 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23789 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23790 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23791 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23792 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23793 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23794 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23795 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23796 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23797 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23798 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23799 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23800 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23801 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23802 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23803 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023804 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023805 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
23806
23807 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23808 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23809 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23810 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23811 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23812 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23813 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23814 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23815 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23816 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23817 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23818 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23819 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23820 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23821 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23822 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23823 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023824 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023825 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
23826
Karthikeyan Manic3700752019-03-11 18:33:53 -070023827 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23828 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23829 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23830 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23831 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23832 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23833 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23834 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23835 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23836 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23837 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23838 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23839 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23840 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23841 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23842 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23843 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
23844 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
23845 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
23846
23847 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23848 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23849 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23850 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23851 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23852 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23853 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23854 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23855 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23856 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23857 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23858 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23859 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23860 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23861 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23862 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23863 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
23864
23865 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23866 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23867 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23868 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23869 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23870 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23871 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23872 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23873 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23874 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23875 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23876 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23877 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23878 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23879 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23880 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23881 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
23882 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
23883 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
23884
23885 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23886 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23887 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23888 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23889 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23890 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23891 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23892 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23893 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23894 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23895 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23896 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23897 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23898 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23899 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23900 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23901 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
23902 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
23903 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
23904
23905 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23906 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23907 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23908 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23909 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23910 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23911 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23912 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23913 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23914 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23915 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23916 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23917 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23918 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23919 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23920 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23921 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
23922 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
23923 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
23924
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023925 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
23926 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
23927 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
23928 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
23929 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023930 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023931 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023932 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23933 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23934 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23935 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23936 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070023937 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
23938 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023939 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23940 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23941 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23942 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23943 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23944 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23945 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023946 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023947 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23948 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
23949 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023950 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023951 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23952 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
23953 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023954 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023955 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
23956 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023957 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23958 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
23959 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023960 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023961 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23962 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
23963 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023964 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023965 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023966 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23967 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
23968 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070023969 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
23970 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
23971 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023972 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23973 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23974 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23975 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23976 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23977 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23978 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23979 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023980 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023981 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23982 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23983 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023984 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023985 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23986 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23987 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023988 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023989 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023990 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23991 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23992 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023993 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023994 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023995 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23996 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23997 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23998 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23999 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024000 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24001 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24002 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24003 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024004 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024005 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024006
24007 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24008 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24009 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24010 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24011 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24012 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24013 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24014 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24015 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24016 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24017 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24018 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24019 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24020 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24021 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24022 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024023 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024024 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24025 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24026 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24027 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024028 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24029 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24030 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24031 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024032 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24033 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24034 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24035 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24036 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024037 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024038 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24039 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24040 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24041 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24042 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24043 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024044 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24045 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024046
24047 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24048 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24049 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24050 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24051 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24052 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24053 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24054 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24055 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24056 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24057 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24058 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24059 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24060 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24061 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24062 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024063 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024064 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24065 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24066 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24067 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024068 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24069 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24070 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24071 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024072 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24073 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24074 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24075 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24076 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024077 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024078 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24079 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24080 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24081 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24082 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24083 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024084 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24085 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024086
24087 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24088 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24089 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24090 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24091 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24092 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24093 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24094 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24095 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24096 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24097 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24098 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24099 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24100 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24101 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24102 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024103 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024104 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24105 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24106 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24107 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024108 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24109 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24110 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24111 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024112 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24113 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24114 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24115 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24116 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024117 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024118 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24119 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24120 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24121 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24122 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24123 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024124 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24125 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024126
24127 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24128 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24129 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24130 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24131 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24132 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24133 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24134 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24135 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24136 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24137 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24138 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24139 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24140 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24141 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24142 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024143 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024144 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24145 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24146 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24147 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024148 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24149 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24150 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24151 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024152 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24153 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24154 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24155 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24156 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024157 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024158 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24159 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24160 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24161 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24162 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24163 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024164 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24165 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024166
24167 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24168 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24169 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24170 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24171 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24172 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24173 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24174 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24175 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24176 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24177 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24178 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24179 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24180 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24181 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24182 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024183 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024184 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24185 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24186 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24187 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024188 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24189 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24190 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24191 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024192 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24193 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24194 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24195 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24196 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024197 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024198 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24199 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24200 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24201 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24202 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24203 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024204 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24205 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024206
24207 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24208 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24209 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24210 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24211 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24212 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24213 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24214 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24215 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24216 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24217 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24218 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24219 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24220 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24221 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24222 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024223 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024224 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24225 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24226 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24227 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024228 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24229 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24230 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24231 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024232 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24233 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24234 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24235 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24236 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024237 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024238 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24239 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24240 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24241 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24242 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24243 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024244 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24245 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024246
24247 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24248 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24249 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24250 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24251 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24252 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24253 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24254 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24255 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24256 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24257 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24258 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24259 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24260 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24261 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24262 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024263 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024264 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24265 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24266 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24267 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024268 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24269 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24270 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24271 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024272 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24273 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24274 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24275 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24276 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024277 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024278 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24279 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24280 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24281 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24282 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24283 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024284 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24285 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024286
Samyak Jain810e42a2019-01-07 17:53:34 +053024287 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024288 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24289 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24290 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24291 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24292 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24293 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24294 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24295 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053024296 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24297 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24298 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24299 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024300 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24301 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24302 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24303 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024304 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24305 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24306 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24307 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24308 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024309 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024310 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24311 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24312 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24313 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24314 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24315 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024316 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24317 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024318 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024319
Laxminath Kasam38070be2017-08-17 18:21:59 +053024320 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24321 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24322 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24323 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24324 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24325 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24326 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24327 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024328 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24329 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24330 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24331 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24332 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24333 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024334 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024335
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024336 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24337 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24338 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24339 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024340 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024341 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024342 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24343 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24344 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24345 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24346 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24347 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24348 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24349 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24350 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24351 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24352 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24353 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24354 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24355 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24356 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24357 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053024358 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24359 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24360 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24361 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024362 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24363 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24364 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24365 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024366 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24367 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24368 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24369 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24370 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024371 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024372 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24373 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24374 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24375 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24376 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24377 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024378 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24379 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024380 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024381
Derek Chen07c6d1c2018-07-05 10:39:25 -070024382 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24383 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24384 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24385 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24386 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24387 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24388 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24389 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24390 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24391 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24392 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24393 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24394 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24395 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24396 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24397 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24398 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24399 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
24400 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24401 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24402 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24403 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024404 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24405 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24406 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24407 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053024408 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24409 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24410 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24411 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24412 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024413 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053024414 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24415 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24416 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24417 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24418 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24419 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
24420 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24421 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024422 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024423
Surendar Karkac1cde372018-08-14 18:56:24 +053024424 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024425 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024426 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24427 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024428 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024429 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24430 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24431 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24432 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24433 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024434 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024435 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24436 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024437 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024439 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24440 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24441 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24442 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24443 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24444 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024445 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024446
Asish Bhattacharya34504582017-08-08 12:55:01 +053024447 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24448 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24449 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24450 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24451 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24452 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24453 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24454 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24455 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24456 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24457 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24458 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24459 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24460 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24461 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24462 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
24463 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024464 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24465 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24466 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24467 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24468 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024469 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024470 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24471 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24472 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24473 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24474 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24475 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024476 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24477 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024478 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024479
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024480 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24481 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24482 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24483 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24484 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24485 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024486 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024487
24488 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24489 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24490 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24491 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24492 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24493 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024494 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024495
24496 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24497 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24498 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24499 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24500 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24501 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024502 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024503
24504 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24505 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24506 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24507 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24508 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24509 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024510 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024511
24512 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24513 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24514 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24515 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24516 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24517 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024518 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024519
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024520 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24521 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24522 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24523 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24524 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24525 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24526 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24527 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24528 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24529 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24530 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24531 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24532 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24533 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24534 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24535 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24536 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
24537 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
24538
24539 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24540 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24541 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24542 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24543 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24544 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24545 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24546 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24547 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24548 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24549 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24550 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24551 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24552 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24553 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24554 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24555 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
24556 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
24557
24558 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24559 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24560 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24561 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24562 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24563 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24564 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24565 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24566 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24567 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24568 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24569 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24570 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24571 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24572 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24573 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24574 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
24575
24576 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24577 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24578 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24579 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24580 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24581 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24582 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24583 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24584 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24585 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24586 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24587 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24588 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24589 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24590 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24591 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24592 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
24593
24594 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24595 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24596 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024597 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024598 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24599 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24600 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024601 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24602 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024603 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24604 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024605 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024606 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24607 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024608 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024609 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24610 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24611 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024612 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24613 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024614 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24615 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24616 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24617
24618 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
24619 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
24620 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024621 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024622 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
24623 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
24624 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024625 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
24626 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024627 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
24628 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024629 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024630 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
24631 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24632 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
24633 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
24634 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
24635 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
24636 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
24637 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
24638 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024639 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024640 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024641 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
24642 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
24643 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
24644 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024645 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024646 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024647 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
24648 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024649
24650 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24651 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24652 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24653 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24654 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24655 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24656 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24657 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24658 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24659 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24660 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24661 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24662 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24663 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24664 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24665 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024666 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024667 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
24668
24669 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24670 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24671 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24672 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24673 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24674 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24675 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24676 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24677 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24678 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24679 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24680 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24681 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24682 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24683 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24684 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024685 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024686 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
24687
24688 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24689 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24690 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24691 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24692 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24693 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24694 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24695 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24696 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24697 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24698 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24699 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24700 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24701 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24702 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24703 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24704 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
24705
24706 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24707 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24708 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24709 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24710 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24711 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24712 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24713 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24714 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24715 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24716 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24717 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24718 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24719 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24720 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24721 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24722 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
24723
Rohit Kumara5077932017-09-10 22:05:05 +053024724 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24725 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24726 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24727 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24728 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24729 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24730 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24731 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24732 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24733 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24734 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24735 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24736 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24737 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24738 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24739 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24740 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
24741
Karthikeyan Manic3700752019-03-11 18:33:53 -070024742 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24743 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24744 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24745 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24746 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24747 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24748 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24749 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24750 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24751 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24752 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24753 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24754 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24755 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24756 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24757 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24758 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
24759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024760 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
24761 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24762 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24763 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24764 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24765 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
24766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024767 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
24768 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24769 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24770 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
24771
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024772 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024773 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24774 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024775 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24776 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24777 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24778 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24779 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
24780
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024781 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
24782 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024783 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24784 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24785 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24786 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
24787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024788 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
24789 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024790 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24791 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24792 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24793 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
24794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024795 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
24796 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024797 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24798 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24799 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24800 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
24801
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024802 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
24803 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024804 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24805 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24806 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24807 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
24808
Karthikeyan Mani57550082018-05-03 18:43:58 -070024809 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
24810 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24811 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
24812 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24813 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24814 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
24815
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024816 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
24817 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24818 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24819 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24820 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024821 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
24822
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024823 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24824 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24825 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24826 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24827 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24828 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
24829
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024830 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24831 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024832 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24833 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24834 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24835 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
24836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024837 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24838 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024839 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24840 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24841 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24842 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
24843
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024844 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24845 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024846 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24847 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24848 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24849 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
24850
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024851 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24852 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024853 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24854 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24855 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24856 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
24857
Rohit Kumara5077932017-09-10 22:05:05 +053024858 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24859 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053024860 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24861 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24862 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24863 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
24864
Karthikeyan Manic3700752019-03-11 18:33:53 -070024865 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24866 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24867 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24868 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24869 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24870 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
24871
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024872 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
24873 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24874 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24875 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24876 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24877 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
24878 {"HDMI", NULL, "HDMI_DL_HL"},
24879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024880 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024881 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24882 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024883 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24884 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24885 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080024886 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024887 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
24888
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024889 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024890 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24891 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024892 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24893 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24894 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24895 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24896 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
24897
24898 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24899 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24900 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24901 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24902 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24903 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
24904
24905 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24906 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24907 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24908 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24909 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24910 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
24911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024912 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024913 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24914 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024915 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24916 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24917 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24918 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24919 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
24920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024921 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024922 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24923 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024924 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24925 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24926 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24927 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
24928
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024929 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024930 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24931 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024932 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24933 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24934 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24935 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
24936
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024937 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024938 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24939 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24940 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24941 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
24942 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24943 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24944 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24945 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
24946
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024947 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024948 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24949 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24950 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24951 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
24952 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24953 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24954 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24955 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
24956
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024957 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024958 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24959 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24960 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24961 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
24962 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24963 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24964 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24965 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
24966
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024967 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024968 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24969 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24970 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24971 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
24972 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24973 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24974 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24975 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
24976
Karthikeyan Manic3700752019-03-11 18:33:53 -070024977 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24978 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24979 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24980 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24981 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
24982
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024983 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24984 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
24985
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024986 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24987 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24988 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
24989
24990 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24991 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24992 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
24993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024994 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24995 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24996 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24997 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024998 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024999 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070025000 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025001 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025002 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
25003 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
25004
25005 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25006 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25007 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25008 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25009 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25010 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25011 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25012 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25013 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25014 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025015 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25016 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025017
25018 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25019 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25020 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25021 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25022
25023 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25024 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25025 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25026 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25027
25028 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25029 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25030 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25031 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25032
25033 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25034 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25035 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25036 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25037
25038 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25039 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25040 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25041 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25042
25043 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25044 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25045 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25046 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25047
25048 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25049 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25050 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25051 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25052
Laxminath Kasam38070be2017-08-17 18:21:59 +053025053 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25054 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25055 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25056 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25057 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25058 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25059 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25060 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25061 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25062 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025063 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25064 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070025065
25066 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25067 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25068 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25069 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25070
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025071 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25072 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25073 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25074 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25075
25076 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25077 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25078 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25079 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25080
25081 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25082 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25083 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25084 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25085
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025086 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25087 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25088 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25089 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25090
25091 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25092 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25093 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25094 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080025095
25096 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25097 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25098 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25099 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25100 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25101 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25102 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25103 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025105 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
25106 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
25107 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
25108 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
25109 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
25110 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
25111 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
25112 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025113 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025114 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025115 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
25116 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
25117 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025118 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
25119 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025121 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
25122 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
25123 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
25124 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
25125 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
25126 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
25127 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
25128 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
25129 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
25130 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
25131 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
25132 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
25133 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
25134 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
25135 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025136 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025137 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025138 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025139 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
25140 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
25141 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
25142 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
25143 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
25144 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025145 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
25146 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025147 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025148 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
25149
25150 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
25151 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
25152 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
25153 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
25154 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
25155 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
25156 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
25157 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
25158 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
25159 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
25160 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
25161 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
25162 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
25163 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
25164 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025165 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025166 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025167 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
25168 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
25169 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
25170 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
25171 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
25172 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025173 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
25174 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070025175 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025176 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
25177
25178 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
25179 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
25180 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
25181 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
25182 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
25183 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
25184 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
25185 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
25186 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
25187 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
25188 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
25189 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
25190 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
25191 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025192 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025193 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025194 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025195 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025196 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
25197
25198 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
25199 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
25200 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
25201 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
25202 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
25203 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
25204 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
25205 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
25206 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
25207 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080025208 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
25209 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025210 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
25211 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
25212 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
25213 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
25214 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053025215 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25216 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
25217 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025218 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25219 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
25220 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025221 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25222 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25223 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25224 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25225 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25226 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25227 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25228 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025229 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25230 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025231 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025232 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025233 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025234 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
25235
25236 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25237 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25238 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25239 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25240 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25241 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25242 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25243 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025244 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25245 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025246 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025247 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025248 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025249 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
25250
25251
25252 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25253 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25254 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25255 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25256 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25257 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25258 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25259 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025260 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25261 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025262 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025263 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025264 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025265 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
25266
25267
25268 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25269 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25270 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25271 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25272 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25273 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25274 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25275 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025276 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25277 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025278 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025279 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025280 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025281 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
25282
25283 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25284 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25285 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25286 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25287 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25288 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25289 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25290 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025291 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25292 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025293 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025294 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025295 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025296 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
25297
25298 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25299 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25300 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25301 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25302 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25303 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025304 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25305 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025306 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025307 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025308 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025309 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
25310
25311 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25312 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25313 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25314 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25315 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25316 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025317 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25318 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025319 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025320 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025321 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025322 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
25323
25324 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25325 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25326 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25327 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25328 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25329 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025330 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25331 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025332 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025333 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025334 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025335 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
25336
25337
25338 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
25339 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
25340 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
25341 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
25342 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
25343 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
25344 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
25345 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
25346 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
25347 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
25348 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025349 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025350 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025351 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
25352 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
25353 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
25354 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
25355 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
25356 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
25357
25358 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
25359 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
25360 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
25361 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
25362 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
25363 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
25364 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
25365 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
25366 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
25367 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
25368 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
25369 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080025370 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
25371 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080025372 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025373 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080025374 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025375 {"MI2S_RX", NULL, "MI2S_DL_HL"},
25376 {"MI2S_UL_HL", NULL, "MI2S_TX"},
25377 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
25378 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
25379
25380 /* connect to INT4_MI2S_DL_HL since same pcm_id */
25381 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
25382 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
25383 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
25384 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
25385 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
25386 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
25387 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
25388 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
25389 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
25390 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
25391
25392 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
25393 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053025394 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
25395 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025396 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
25397 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025398 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
25399 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
25400 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
25401 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
25402 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
25403 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
25404 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
25405 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
25406 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
25407 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
25408
25409 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
25410 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
25411 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
25412 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
25413 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
25414 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
25415 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
25416 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
25417 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
25418 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
25419 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
25420 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
25421 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
25422 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
25423 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
25424 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070025425 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025426 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
25427 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
25428 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
25429 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070025430 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025431 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
25432 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
25433 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
25434 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
25435 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
25436 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
25437 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
25438 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050025439 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025440 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
25441 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
25442 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
25443 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050025444 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053025445 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
25446 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
25447 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
25448 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
25449 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
25450 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
25451 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
25452 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025453 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
25454 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
25455 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
25456 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
25457 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
25458 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
25459 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
25460 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025461
25462 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25463 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25464 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25465 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25466 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25467 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25468 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25469 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25470 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25471 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25472 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25473 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25474 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25475 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25476 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25477 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025478 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25479 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25480 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25481 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025482 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25483 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25484 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25485 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025486 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
25487
25488 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25489 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25490 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25491 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25492 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25493 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25494 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25495 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25496 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25497 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25498 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25499 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25500 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25501 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25502 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25503 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025504 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25505 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25506 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25507 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025508 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25509 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25510 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25511 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025512 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
25513
25514 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25515 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25516 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25517 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25518 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25519 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25520 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25521 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25522 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25523 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25524 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25525 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25526 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25527 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25528 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25529 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025530 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25531 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25532 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25533 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025534 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25535 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25536 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25537 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025538 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
25539
25540 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25541 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25542 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25543 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25544 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25545 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25546 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25547 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25548 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25549 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25550 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25551 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25552 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25553 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25554 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25555 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025556 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25557 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25558 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25559 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025560 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25561 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25562 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25563 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025564 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
25565
25566 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25567 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25568 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25569 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25570 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25571 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25572 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25573 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25574 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25575 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25576 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25577 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25578 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25579 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25580 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25581 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025582 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25583 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25584 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25585 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025586 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25587 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25588 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25589 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025590 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
25591
25592 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25593 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25594 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25595 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25596 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25597 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25598 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25599 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25600 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25601 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25602 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25603 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25604 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25605 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25606 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25607 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025608 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25609 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25610 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25611 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025612 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25613 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25614 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25615 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025616 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
25617
25618 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25619 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25620 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25621 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25622 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25623 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25624 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25625 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25626 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25627 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25628 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25629 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25630 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25631 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25632 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25633 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025634 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25635 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25636 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25637 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025638 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25639 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25640 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25641 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025642 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
25643
25644 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25645 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25646 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25647 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25648 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25649 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25650 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25651 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25652 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25653 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25654 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25655 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25656 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25657 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25658 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25659 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025660 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25661 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25662 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25663 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025664 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25665 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25666 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25667 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025668 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
25669
Derek Chenfdcc0982018-10-02 15:14:03 -070025670 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
25671 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
25672
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025673 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25674 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25675 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25676 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25677 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25678 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25679 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25680 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25681 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25682 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25683 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25684 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25685 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25686 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25687 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25688 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025689 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25690 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25691 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25692 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025693 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25694 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25695 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25696 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025697 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
25698
25699 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25700 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25701 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25702 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25703 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25704 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25705 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25706 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25707 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25708 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25709 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25710 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25711 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25712 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25713 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25714 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025715 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25716 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25717 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25718 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025719 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25720 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25721 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25722 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025723 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
25724
25725 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25726 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25727 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25728 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25729 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25730 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25731 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25732 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25733 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25734 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25735 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25736 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25737 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25738 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25739 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25740 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025741 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25742 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25743 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25744 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025745 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25746 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25747 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25748 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025749 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
25750
25751 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25752 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25753 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25754 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25755 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25756 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25757 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25758 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25759 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25760 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25761 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25762 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25763 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25764 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25765 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25766 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025767 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25768 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25769 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25770 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025771 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25772 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25773 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25774 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025775 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
25776
25777 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25778 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25779 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25780 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25781 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25782 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25783 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25784 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25785 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25786 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25787 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25788 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25789 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25790 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25791 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25792 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025793 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25794 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25795 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25796 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025797 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25798 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25799 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25800 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025801 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
25802
25803 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25804 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25805 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25806 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25807 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25808 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25809 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25810 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25811 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25812 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25813 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25814 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25815 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25816 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25817 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25818 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025819 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25820 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25821 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25822 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025823 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25824 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25825 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25826 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025827 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
25828
25829 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25830 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25831 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25832 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25833 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25834 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25835 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25836 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25837 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25838 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25839 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25840 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25841 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25842 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25843 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25844 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025845 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25846 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25847 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25848 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025849 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25850 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25851 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25852 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025853 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
25854
25855 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25856 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25857 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25858 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25859 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25860 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25861 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25862 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25863 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25864 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25865 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25866 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25867 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25868 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25869 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25870 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025871 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25872 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25873 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25874 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025875 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25876 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25877 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25878 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025879 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
25880
Derek Chenb9048cb2019-03-07 14:54:13 -050025881 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
25882 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
25883
Rohit Kumara5077932017-09-10 22:05:05 +053025884 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25885 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25886 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25887 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25888 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25889 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25890 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25891 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25892 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25893 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25894 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25895 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25896 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25897 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25898 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25899 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25900 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25901 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25902 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25903 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025904 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25905 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25906 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25907 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025908 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025909
25910 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25911 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25912 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25913 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25914 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25915 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25916 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25917 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25918 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25919 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25920 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25921 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25922 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25923 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25924 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25925 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25926 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25927 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25928 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25929 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025930 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25931 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25932 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25933 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025934 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025935
25936 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25937 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25938 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25939 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25940 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25941 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25942 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25943 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25944 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25945 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25946 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25947 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25948 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25949 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25950 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25951 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25952 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25953 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25954 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25955 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025956 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25957 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25958 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25959 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025960 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025961
25962 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25963 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25964 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25965 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25966 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25967 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25968 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25969 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25970 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25971 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25972 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25973 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25974 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25975 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25976 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25977 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25978 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25979 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25980 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25981 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025982 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25983 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25984 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25985 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025986 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025987
Karthikeyan Manic3700752019-03-11 18:33:53 -070025988 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25989 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25990 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25991 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25992 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25993 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25994 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25995 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25996 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25997 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25998 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25999 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26000 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26001 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26002 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26003 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26004 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26005 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26006 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26007 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26008 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
26009
26010 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26011 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26012 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26013 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26014 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26015 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26016 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26017 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26018 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26019 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26020 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26021 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26022 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26023 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26024 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26025 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26026 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26027 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26028 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26029 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26030 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
26031
26032 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26033 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26034 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26035 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26036 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26037 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26038 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26039 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26040 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26041 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26042 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26043 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26044 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26045 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26046 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26047 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26048 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26049 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26050 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26051 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26052 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
26053
26054 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26055 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26056 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26057 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26058 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26059 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26060 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26061 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26062 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26063 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26064 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26065 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26066 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26067 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26068 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26069 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26070 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26071 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26072 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26073 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26074 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
26075
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026076 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26077 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26078 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26079 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026080 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026081 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026082 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26083 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26084 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26085 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026086 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026087 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26088 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
26089
26090 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26091 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26092 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26093 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026094 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026095 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026096 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26097 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26098 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026099 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026100 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26101 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26102 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
26103
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026104 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26105 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080026106 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026107 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026108 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
26109
26110 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26111 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026112 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026113 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026114
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026115 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26116 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26117 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26118 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26119 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026120 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026121 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26122 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26123 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26124 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026125 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026126 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026127 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26128 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26129 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26130 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26131 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026132 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026133 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026134 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26135 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
26136 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26137 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26138 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
26139 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26140 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
26141 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
26142 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
26143 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
26144
26145
26146 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26147 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26148 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26149 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26150 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053026151 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026152 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026153 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
26154
26155 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26156 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26157 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026158 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026159 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
26160
26161 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26162 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26163 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26164 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
26165
26166 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26167 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26168 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26169 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
26170
Rohit Kumara5077932017-09-10 22:05:05 +053026171 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26172 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26173 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26174 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
26175
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026176 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26177 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26178 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26179 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26180 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26181 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26182 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26183 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026184 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026185 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026186 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
26187 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26188 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26189 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26190 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26191 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26192 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26193 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26194 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26195 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26196 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
26197
26198 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26199 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26200 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26201 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26202 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26203 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26204 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26205 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26206 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26207 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26208 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26209 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
26210
26211 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26212 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26213 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26214 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26215 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26216 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26217 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26218 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26219 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26220 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26221 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026222 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026223 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
26224
kunleizdf5a00a2017-11-27 15:27:36 +080026225 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26226 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026227 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080026228
26229 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26230 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026231 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080026232
26233 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26234 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026235 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
26236
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026237 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
26238 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026239 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26240 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26241 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26242 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
26243
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026244 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
26245 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026246 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26247 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26248 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26249 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
26250
26251 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26252 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26253 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26254 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
26255 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26256 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26257 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
26258 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
26259 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26260 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
26261 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
26262 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
26263 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
26264
26265 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26266 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26267 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26268 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26269 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026270 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026271 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26272 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26273 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26274 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26275 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26276 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26277 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26278 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
26279
26280 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26281 {"HDMI", NULL, "HDMI_RX Port Mixer"},
26282
26283 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26284 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
26285
Karthikeyan Mani57550082018-05-03 18:43:58 -070026286 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
26287 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
26288
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026289 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26290 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
26291
26292 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26293 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26294 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
26295
26296 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26297 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26298 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26299 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026300 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026301 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026302 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26303 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26304 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26305 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026306 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026307 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
26308
26309 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26310 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26311 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26312 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026313 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026314 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026315 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26316 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26317 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026318 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026319 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
26320
26321 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26322 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26323 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26324 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026325 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026326 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026327 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26328 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26329 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
26330
26331 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26332 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26333 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26334 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026335 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026336 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026337 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26338 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26339 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26340 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26341 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
26342
Rohit Kumara5077932017-09-10 22:05:05 +053026343 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26344 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26345 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26346 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26347 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026348 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026349 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26350 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26351 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
26352
Karthikeyan Manic3700752019-03-11 18:33:53 -070026353 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26354 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26355 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26356 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26357 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
26358 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26359 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26360 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
26361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026362 /* Backend Enablement */
26363
26364 {"BE_OUT", NULL, "PRI_I2S_RX"},
26365 {"BE_OUT", NULL, "SEC_I2S_RX"},
26366 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
26367 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
26368 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
26369 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26370 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
26371 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
26372 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
26373 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
26374 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026375 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026376 {"BE_OUT", NULL, "USB_AUDIO_RX"},
26377 {"BE_OUT", NULL, "HDMI"},
26378 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070026379 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026380 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
26381 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026382 {"BE_OUT", NULL, "MI2S_RX"},
26383 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
26384 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026385 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026386 {"BE_OUT", NULL, "TERT_MI2S_RX"},
26387 {"BE_OUT", NULL, "SEC_MI2S_RX"},
26388 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
26389 {"BE_OUT", NULL, "PRI_MI2S_RX"},
26390 {"BE_OUT", NULL, "INT0_MI2S_RX"},
26391 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026392 {"BE_OUT", NULL, "INT2_MI2S_RX"},
26393 {"BE_OUT", NULL, "INT3_MI2S_RX"},
26394 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026395 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
26396 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
26397 {"BE_OUT", NULL, "INT_FM_RX"},
26398 {"BE_OUT", NULL, "PCM_RX"},
26399 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26400 {"BE_OUT", NULL, "AUX_PCM_RX"},
26401 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
26402 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
26403 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026404 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026405 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026406 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
26407 {"BE_OUT", NULL, "INT_FM_RX"},
26408 {"BE_OUT", NULL, "PCM_RX"},
26409 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26410 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
26411 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
26412 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
26413 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
26414 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
26415 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
26416 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
26417 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
26418 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
26419 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026420 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026421 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
26422 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
26423 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
26424 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
26425 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
26426 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
26427 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
26428 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
26429 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026430 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053026431 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
26432 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
26433 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
26434 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026435 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
26436 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
26437 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
26438 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026439 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
26440 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026441 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
26442 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
26443 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
26444 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
26445 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
26446 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
26447 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
26448 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026449
26450 {"PRI_I2S_TX", NULL, "BE_IN"},
26451 {"MI2S_TX", NULL, "BE_IN"},
26452 {"QUAT_MI2S_TX", NULL, "BE_IN"},
26453 {"QUIN_MI2S_TX", NULL, "BE_IN"},
26454 {"PRI_MI2S_TX", NULL, "BE_IN"},
26455 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026456 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026457 {"INT2_MI2S_TX", NULL, "BE_IN"},
26458 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026459 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026460 {"INT5_MI2S_TX", NULL, "BE_IN"},
26461 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026462 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026463 {"SLIMBUS_0_TX", NULL, "BE_IN" },
26464 {"SLIMBUS_1_TX", NULL, "BE_IN" },
26465 {"SLIMBUS_3_TX", NULL, "BE_IN" },
26466 {"SLIMBUS_4_TX", NULL, "BE_IN" },
26467 {"SLIMBUS_5_TX", NULL, "BE_IN" },
26468 {"SLIMBUS_6_TX", NULL, "BE_IN" },
26469 {"SLIMBUS_7_TX", NULL, "BE_IN" },
26470 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053026471 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026472 {"USB_AUDIO_TX", NULL, "BE_IN" },
26473 {"INT_BT_SCO_TX", NULL, "BE_IN"},
26474 {"INT_FM_TX", NULL, "BE_IN"},
26475 {"PCM_TX", NULL, "BE_IN"},
26476 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26477 {"BE_OUT", NULL, "STUB_RX"},
26478 {"STUB_TX", NULL, "BE_IN"},
26479 {"STUB_1_TX", NULL, "BE_IN"},
26480 {"BE_OUT", NULL, "AUX_PCM_RX"},
26481 {"AUX_PCM_TX", NULL, "BE_IN"},
26482 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
26483 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
26484 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053026485 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026486 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026487 {"INCALL_RECORD_TX", NULL, "BE_IN"},
26488 {"INCALL_RECORD_RX", NULL, "BE_IN"},
26489 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
26490 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026491 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26492 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026493 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
26494 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
26495 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
26496 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
26497 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026498 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
26499 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026500 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
26501 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
26502 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
26503 {"PRI_TDM_TX_0", NULL, "BE_IN"},
26504 {"PRI_TDM_TX_1", NULL, "BE_IN"},
26505 {"PRI_TDM_TX_2", NULL, "BE_IN"},
26506 {"PRI_TDM_TX_3", NULL, "BE_IN"},
26507 {"SEC_TDM_TX_0", NULL, "BE_IN"},
26508 {"SEC_TDM_TX_1", NULL, "BE_IN"},
26509 {"SEC_TDM_TX_2", NULL, "BE_IN"},
26510 {"SEC_TDM_TX_3", NULL, "BE_IN"},
26511 {"TERT_TDM_TX_0", NULL, "BE_IN"},
26512 {"TERT_TDM_TX_1", NULL, "BE_IN"},
26513 {"TERT_TDM_TX_2", NULL, "BE_IN"},
26514 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026515 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026516 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
26517 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
26518 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
26519 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026520 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026521 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053026522 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
26523 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
26524 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
26525 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026526 {"SEN_TDM_TX_0", NULL, "BE_IN"},
26527 {"SEN_TDM_TX_1", NULL, "BE_IN"},
26528 {"SEN_TDM_TX_2", NULL, "BE_IN"},
26529 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026530 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
26531 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
26532 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
26533 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
26534 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026535 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026536 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
26537 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
26538 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
26539 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
26540 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
26541 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026542 {"PRI_SPDIF_TX", NULL, "BE_IN"},
26543 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026544};
26545
26546static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
26547 struct snd_pcm_hw_params *params)
26548{
26549 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26550 unsigned int be_id = rtd->dai_link->id;
26551
26552 if (be_id >= MSM_BACKEND_DAI_MAX) {
26553 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26554 return -EINVAL;
26555 }
26556
26557 mutex_lock(&routing_lock);
26558 msm_bedais[be_id].sample_rate = params_rate(params);
26559 msm_bedais[be_id].channel = params_channels(params);
26560 msm_bedais[be_id].format = params_format(params);
26561 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
26562 __func__, msm_bedais[be_id].sample_rate,
26563 msm_bedais[be_id].format, be_id);
26564 mutex_unlock(&routing_lock);
26565 return 0;
26566}
26567
26568static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
26569{
26570 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26571 unsigned int be_id = rtd->dai_link->id;
26572 int i, session_type, path_type, topology;
26573 struct msm_pcm_routing_bdai_data *bedai;
26574 struct msm_pcm_routing_fdai_data *fdai;
26575
26576 pr_debug("%s: substream->pcm->id:%s\n",
26577 __func__, substream->pcm->id);
26578
26579 if (be_id >= MSM_BACKEND_DAI_MAX) {
26580 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26581 return -EINVAL;
26582 }
26583
26584 bedai = &msm_bedais[be_id];
26585 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
26586 0 : 1);
26587 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
26588 path_type = ADM_PATH_PLAYBACK;
26589 else
26590 path_type = ADM_PATH_LIVE_REC;
26591
26592 mutex_lock(&routing_lock);
26593 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26594 if (!is_mm_lsm_fe_id(i))
26595 continue;
26596 fdai = &fe_dai_map[i][session_type];
26597 if (fdai->strm_id != INVALID_SESSION) {
26598 int idx;
26599 int port_id;
26600 unsigned long copp =
26601 session_copp_map[i][session_type][be_id];
26602 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
26603 if (test_bit(idx, &copp))
26604 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070026605
26606 if (idx >= MAX_COPPS_PER_PORT) {
26607 pr_debug("%s: copp idx is invalid, exiting\n",
26608 __func__);
26609 continue;
26610 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026611 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053026612 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026613 topology = adm_get_topology_for_port_copp_idx(port_id,
26614 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026615 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053026616 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026617 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
26618 __func__, copp, i, session_type, be_id,
26619 topology);
26620 clear_bit(idx,
26621 &session_copp_map[i][session_type][be_id]);
26622 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026623 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053026624 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026625 topology);
26626 }
26627 }
26628
26629 bedai->active = 0;
26630 bedai->sample_rate = 0;
26631 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026632 mutex_unlock(&routing_lock);
26633
26634 return 0;
26635}
26636
26637static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
26638{
26639 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26640 unsigned int be_id = rtd->dai_link->id;
26641 int i, path_type, topology;
26642 int session_type = INVALID_SESSION;
26643 struct msm_pcm_routing_bdai_data *bedai;
26644 u32 channels, sample_rate;
26645 uint16_t bits_per_sample = 16, voc_path_type;
26646 struct msm_pcm_routing_fdai_data *fdai;
26647 u32 session_id;
26648 struct media_format_info voc_be_media_format;
26649 bool is_lsm;
26650
26651 pr_debug("%s: substream->pcm->id:%s\n",
26652 __func__, substream->pcm->id);
26653
26654 if (be_id >= MSM_BACKEND_DAI_MAX) {
26655 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26656 return -EINVAL;
26657 }
26658
26659 bedai = &msm_bedais[be_id];
26660
26661 mutex_lock(&routing_lock);
26662 if (bedai->active == 1)
26663 goto done; /* Ignore prepare if back-end already active */
26664
26665 /* AFE port is not active at this point. However, still
26666 * go ahead setting active flag under the notion that
26667 * QDSP6 is able to handle ADM starting before AFE port
26668 * is started.
26669 */
26670 bedai->active = 1;
26671
26672 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26673 if (!(is_mm_lsm_fe_id(i) &&
26674 route_check_fe_id_adm_support(i)))
26675 continue;
26676
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026677 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
26678 SESSION_TYPE_RX : SESSION_TYPE_TX;
26679 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026680 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026681 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026682 path_type = ADM_PATH_COMPRESSED_RX;
26683 else
26684 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026685 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026686 if ((fdai->passthr_mode != LEGACY_PCM) &&
26687 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020026688 path_type = ADM_PATH_COMPRESSED_TX;
26689 else
26690 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026691 }
26692
26693 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
26694 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026695 if (fdai->strm_id != INVALID_SESSION) {
26696 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053026697 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026698
26699 if (session_type == SESSION_TYPE_TX &&
26700 fdai->be_srate &&
26701 (fdai->be_srate != bedai->sample_rate)) {
26702 pr_debug("%s: flush strm %d diff BE rates\n",
26703 __func__,
26704 fdai->strm_id);
26705
26706 if (fdai->event_info.event_func)
26707 fdai->event_info.event_func(
26708 MSM_PCM_RT_EVT_BUF_RECFG,
26709 fdai->event_info.priv_data);
26710 fdai->be_srate = 0; /* might not need it */
26711 }
26712 bits_per_sample = msm_routing_get_bit_width(
26713 bedai->format);
26714
26715 app_type =
26716 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
26717 if (app_type && is_lsm) {
26718 app_type_idx =
26719 msm_pcm_routing_get_lsm_app_type_idx(app_type);
26720 sample_rate =
26721 fe_dai_app_type_cfg[i][session_type][be_id]
26722 .sample_rate;
26723 bits_per_sample =
26724 lsm_app_type_cfg[app_type_idx].bit_width;
26725 } else if (app_type) {
26726 app_type_idx =
26727 msm_pcm_routing_get_app_type_idx(app_type);
26728 sample_rate =
26729 fe_dai_app_type_cfg[i][session_type]
26730 [be_id].sample_rate;
26731 bits_per_sample =
26732 app_type_cfg[app_type_idx].bit_width;
26733 } else
26734 sample_rate = bedai->sample_rate;
26735 /*
26736 * check if ADM needs to be configured with different
26737 * channel mapping than backend
26738 */
26739 if (!bedai->adm_override_ch)
26740 channels = bedai->channel;
26741 else
26742 channels = bedai->adm_override_ch;
26743 acdb_dev_id =
26744 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
26745 topology = msm_routing_get_adm_topology(i, session_type,
26746 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020026747
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026748 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
26749 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
26750 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020026751 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
26752
Surendar Karkae7507512018-07-20 15:46:54 +053026753 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026754 sample_rate, channels, topology,
26755 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053026756 app_type, acdb_dev_id,
26757 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026758 if ((copp_idx < 0) ||
26759 (copp_idx >= MAX_COPPS_PER_PORT)) {
26760 pr_err("%s: adm open failed\n", __func__);
26761 mutex_unlock(&routing_lock);
26762 return -EINVAL;
26763 }
26764 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
26765 __func__, i, session_type, be_id);
26766 set_bit(copp_idx,
26767 &session_copp_map[i][session_type][be_id]);
26768
26769 if (msm_is_resample_needed(
26770 sample_rate,
26771 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053026772 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026773 bedai->sample_rate);
26774
26775 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026776 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026777 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026778 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053026779 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026780 topology, channels);
26781 }
26782 }
26783
26784 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26785 session_id = msm_pcm_routing_get_voc_sessionid(i);
26786 if (session_id) {
26787 pr_debug("%s voice session_id: 0x%x\n", __func__,
26788 session_id);
26789
26790 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
26791 voc_path_type = RX_PATH;
26792 else
26793 voc_path_type = TX_PATH;
26794
26795 voc_set_route_flag(session_id, voc_path_type, 1);
26796
26797 memset(&voc_be_media_format, 0,
26798 sizeof(struct media_format_info));
26799
26800 voc_be_media_format.port_id = bedai->port_id;
26801 voc_be_media_format.num_channels = bedai->channel;
26802 voc_be_media_format.sample_rate = bedai->sample_rate;
26803 voc_be_media_format.bits_per_sample = bedai->format;
26804 /* Defaulting this to 1 for voice call usecases */
26805 voc_be_media_format.channel_mapping[0] = 1;
26806
26807 voc_set_device_config(session_id, voc_path_type,
26808 &voc_be_media_format);
26809
26810 if (voc_get_route_flag(session_id, RX_PATH) &&
26811 voc_get_route_flag(session_id, TX_PATH))
26812 voc_enable_device(session_id);
26813 }
26814 }
26815
26816 /* Check if backend is an external ec ref port and set as needed */
26817 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
26818
26819 memset(&voc_be_media_format, 0,
26820 sizeof(struct media_format_info));
26821
26822 /* Get format info for ec ref port from msm_bedais[] */
26823 voc_be_media_format.port_id = bedai->port_id;
26824 voc_be_media_format.num_channels = bedai->channel;
26825 voc_be_media_format.bits_per_sample = bedai->format;
26826 voc_be_media_format.sample_rate = bedai->sample_rate;
26827 /* Defaulting this to 1 for voice call usecases */
26828 voc_be_media_format.channel_mapping[0] = 1;
26829 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
26830 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
26831 __func__, voc_be_media_format.port_id,
26832 voc_be_media_format.num_channels,
26833 voc_be_media_format.bits_per_sample,
26834 voc_be_media_format.sample_rate);
26835 }
26836
26837done:
26838 mutex_unlock(&routing_lock);
26839
26840 return 0;
26841}
26842
26843static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
26844 int fe_id)
26845{
26846 int index, topo_id, be_idx;
26847 unsigned long pp_config = 0;
26848 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026849 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026850 bool compr_passthr_mode = true;
26851
26852 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
26853
26854 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
26855 pr_err("%s: Device pp params on invalid port %d\n",
26856 __func__, port_id);
26857 return -EINVAL;
26858 }
26859
26860 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
26861 if (port_id == msm_bedais[be_idx].port_id)
26862 break;
26863 }
26864
26865 if (be_idx >= MSM_BACKEND_DAI_MAX) {
26866 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
26867 return -EINVAL;
26868 }
26869
26870 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
26871 if (msm_bedais_pp_params[index].port_id == port_id)
26872 break;
26873 }
26874 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
26875 pr_err("%s: Invalid backend pp params index %d\n",
26876 __func__, index);
26877 return -EINVAL;
26878 }
26879
26880 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
26881 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
26882 pr_err("%s: Invalid passthrough topology 0x%x\n",
26883 __func__, topo_id);
26884 return -EINVAL;
26885 }
26886
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026887 session_type =
26888 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
26889 SESSION_TYPE_RX : SESSION_TYPE_TX;
26890
26891 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
26892 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026893 compr_passthr_mode = false;
26894
26895 pp_config = msm_bedais_pp_params[index].pp_params_config;
26896 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
26897 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
26898 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
26899 mute_on = msm_bedais_pp_params[index].mute_on;
26900 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
26901 adm_send_compressed_device_mute(port_id,
26902 copp_idx,
26903 mute_on);
26904 }
26905 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
26906 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
26907 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
26908 &pp_config);
26909 latency = msm_bedais_pp_params[index].latency;
26910 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
26911 adm_send_compressed_device_latency(port_id,
26912 copp_idx,
26913 latency);
26914 }
26915 return 0;
26916}
26917
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026918static uint32_t msm_routing_get_topology(size_t data_size, void *data)
26919{
26920 uint32_t topology = NULL_COPP_TOPOLOGY;
26921 void *cal_info = NULL;
26922 uint32_t size = 0;
26923
26924 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053026925 if (data_size < sizeof(struct audio_cal_type_basic) +
26926 sizeof(struct audio_cal_info_adm_top)) {
26927 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
26928 goto done;
26929 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026930 size = data_size - sizeof(struct audio_cal_type_basic);
26931 cal_info = kzalloc(size, GFP_KERNEL);
26932
26933 if (!cal_info)
26934 goto done;
26935
26936 memcpy(cal_info,
26937 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
26938
26939 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
26940 kfree(cal_info);
26941 cal_info = NULL;
26942
26943done:
26944 pr_debug("%s: Using topology %d\n", __func__, topology);
26945
26946 return topology;
26947}
26948
26949static void msm_routing_load_topology(size_t data_size, void *data)
26950{
26951 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053026952 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026953
26954 topology_id = msm_routing_get_topology(data_size, data);
26955 if (topology_id != NULL_COPP_TOPOLOGY)
26956 ret = q6core_load_unload_topo_modules(topology_id,
26957 CORE_LOAD_TOPOLOGY);
26958 if (ret < 0)
26959 pr_debug("%s %d load topology failed\n",
26960 __func__, topology_id);
26961
26962}
26963
26964static void msm_routing_unload_topology(uint32_t topology_id)
26965{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053026966 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026967
26968 if (topology_id != NULL_COPP_TOPOLOGY)
26969 ret = q6core_load_unload_topo_modules(topology_id,
26970 CORE_UNLOAD_TOPOLOGY);
26971 if (ret < 0)
26972 pr_debug("%s %d unload topology failed\n",
26973 __func__, topology_id);
26974
26975}
26976
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026977static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
26978 struct snd_ctl_elem_value *ucontrol)
26979{
26980 int pp_id = ucontrol->value.integer.value[0];
26981 int port_id = 0;
26982 int index, be_idx, i, topo_id, idx;
26983 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026984 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026985 bool compr_passthr_mode = true;
26986
26987 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
26988
26989 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
26990 port_id = msm_bedais[be_idx].port_id;
26991 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
26992 break;
26993 }
26994
26995 if (be_idx >= MSM_BACKEND_DAI_MAX) {
26996 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
26997 return -EINVAL;
26998 }
26999
27000 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
27001 if (msm_bedais_pp_params[index].port_id == port_id)
27002 break;
27003 }
27004 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
27005 pr_err("%s: Invalid pp params backend index %d\n",
27006 __func__, index);
27007 return -EINVAL;
27008 }
27009
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027010 session_type =
27011 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
27012 SESSION_TYPE_RX : SESSION_TYPE_TX;
27013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027014 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
27015 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027016 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
27017 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027018 compr_passthr_mode = false;
27019
27020 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27021 unsigned long copp =
27022 session_copp_map[i]
27023 [SESSION_TYPE_RX][be_idx];
27024 if (!test_bit(idx, &copp))
27025 continue;
27026 topo_id = adm_get_topology_for_port_copp_idx(port_id,
27027 idx);
27028 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
27029 continue;
27030 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
27031 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027032 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027033 switch (pp_id) {
27034 case ADM_PP_PARAM_MUTE_ID:
27035 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
27036 mute = ucontrol->value.integer.value[1] ? true : false;
27037 msm_bedais_pp_params[index].mute_on = mute;
27038 set_bit(ADM_PP_PARAM_MUTE_BIT,
27039 &msm_bedais_pp_params[index].pp_params_config);
27040 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27041 adm_send_compressed_device_mute(port_id,
27042 idx, mute);
27043 break;
27044 case ADM_PP_PARAM_LATENCY_ID:
27045 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
27046 msm_bedais_pp_params[index].latency =
27047 ucontrol->value.integer.value[1];
27048 set_bit(ADM_PP_PARAM_LATENCY_BIT,
27049 &msm_bedais_pp_params[index].pp_params_config);
27050 latency = msm_bedais_pp_params[index].latency =
27051 ucontrol->value.integer.value[1];
27052 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27053 adm_send_compressed_device_latency(port_id,
27054 idx, latency);
27055 break;
27056 default:
27057 pr_info("%s, device pp param %d not supported\n",
27058 __func__, pp_id);
27059 break;
27060 }
27061 }
27062 }
27063 return 0;
27064}
27065
27066static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
27067 struct snd_ctl_elem_value *ucontrol)
27068{
27069 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
27070 return 0;
27071}
27072
27073static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
27074 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
27075 0, 3, msm_routing_get_device_pp_params_mixer,
27076 msm_routing_put_device_pp_params_mixer),
27077};
27078
27079static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
27080 struct snd_ctl_elem_value *ucontrol)
27081{
27082 ucontrol->value.integer.value[0] =
27083 core_get_license_status(ASM_MEDIA_FMT_APTX);
27084 pr_debug("%s: status %ld\n", __func__,
27085 ucontrol->value.integer.value[0]);
27086 return 0;
27087}
27088
27089static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
27090 struct snd_ctl_elem_value *ucontrol)
27091{
27092 int32_t status = 0;
27093
27094 status = core_set_license(ucontrol->value.integer.value[0],
27095 APTX_CLASSIC_DEC_LICENSE_ID);
27096 pr_debug("%s: status %d\n", __func__, status);
27097 return status;
27098}
27099
27100static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
27101 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
27102 0xFFFF, 0, msm_aptx_dec_license_control_get,
27103 msm_aptx_dec_license_control_put),
27104};
27105
Rohit kumar63ffaa72019-02-01 18:05:33 +053027106static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
27107 struct snd_ctl_elem_value *ucontrol)
27108{
27109 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
27110 uint32_t be_idx = ucontrol->value.integer.value[0];
27111 int i;
27112
27113 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
27114 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
27115 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
27116 pr_err("%s: Invalid channel map %d\n",
27117 __func__, channel_map[i]);
27118 return -EINVAL;
27119 }
27120 }
27121 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
27122
27123 return 0;
27124}
27125
27126static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
27127 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
27128 MSM_BACKEND_DAI_MAX, 0,
27129 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
27130 msm_routing_put_port_chmap_mixer),
27131};
27132
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027133static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
27134 struct snd_ctl_elem_info *uinfo)
27135{
27136 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
27137 uinfo->count = sizeof(be_dai_name_table);
27138 return 0;
27139}
27140
27141static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
27142 unsigned int __user *bytes,
27143 unsigned int size)
27144{
27145 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053027146 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027147
27148 if (size < sizeof(be_dai_name_table)) {
27149 pr_err("%s: invalid size %d requested, returning\n",
27150 __func__, size);
27151 ret = -EINVAL;
27152 goto done;
27153 }
27154
27155 /*
27156 * Fill be_dai_name_table from msm_bedais table to reduce code changes
27157 * needed when adding new backends
27158 */
27159 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
27160 be_dai_name_table[i].be_id = i;
27161 strlcpy(be_dai_name_table[i].be_name,
27162 msm_bedais[i].name,
27163 LPASS_BE_NAME_MAX_LENGTH);
27164 }
27165
27166 ret = copy_to_user(bytes, &be_dai_name_table,
27167 sizeof(be_dai_name_table));
27168 if (ret) {
27169 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
27170 ret = -EFAULT;
27171 }
27172
27173done:
27174 return ret;
27175}
27176
27177static const struct snd_kcontrol_new
27178 msm_routing_be_dai_name_table_mixer_controls[] = {
27179 {
27180 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
27181 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
27182 .info = msm_routing_be_dai_name_table_info,
27183 .name = "Backend DAI Name Table",
27184 .tlv.c = snd_soc_bytes_tlv_callback,
27185 .private_value = (unsigned long) &(struct soc_bytes_ext) {
27186 .max = sizeof(be_dai_name_table),
27187 .get = msm_routing_be_dai_name_table_tlv_get,
27188 }
27189 },
27190};
27191
27192static int msm_routing_stereo_channel_reverse_control_get(
27193 struct snd_kcontrol *kcontrol,
27194 struct snd_ctl_elem_value *ucontrol)
27195{
27196 ucontrol->value.integer.value[0] = swap_ch;
27197 pr_debug("%s: Swap channel value: %ld\n", __func__,
27198 ucontrol->value.integer.value[0]);
27199 return 0;
27200}
27201
27202static int msm_routing_stereo_channel_reverse_control_put(
27203 struct snd_kcontrol *kcontrol,
27204 struct snd_ctl_elem_value *ucontrol)
27205{
27206 int i, idx, be_index, port_id;
27207 int ret = 0;
27208 unsigned long copp;
27209
27210 pr_debug("%s Swap channel value:%ld\n", __func__,
27211 ucontrol->value.integer.value[0]);
27212
27213 swap_ch = ucontrol->value.integer.value[0];
27214
27215 mutex_lock(&routing_lock);
27216 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
27217 port_id = msm_bedais[be_index].port_id;
27218 if (!msm_bedais[be_index].active)
27219 continue;
27220
27221 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
27222 MSM_FRONTEND_DAI_MM_SIZE) {
27223 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
27224 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27225 if (!test_bit(idx, &copp))
27226 continue;
27227
27228 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
27229 __func__, port_id, idx);
27230 ret = adm_swap_speaker_channels(
27231 port_id, idx,
27232 msm_bedais[be_index].sample_rate,
27233 swap_ch);
27234 if (ret) {
27235 pr_err("%s:Swap_channel failed, err=%d\n",
27236 __func__, ret);
27237 goto done;
27238 }
27239 }
27240 }
27241 }
27242done:
27243 mutex_unlock(&routing_lock);
27244 return ret;
27245}
27246
27247static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
27248 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
27249 1, 0, msm_routing_stereo_channel_reverse_control_get,
27250 msm_routing_stereo_channel_reverse_control_put),
27251};
27252
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027253static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
27254 struct snd_ctl_elem_info *uinfo)
27255{
27256 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
27257 uinfo->count = 1;
27258 return 0;
27259}
27260
27261static int msm_routing_instance_id_support_put(
27262 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
27263{
27264 bool supported = ucontrol->value.integer.value[0] ? true : false;
27265
27266 q6common_update_instance_id_support(supported);
27267 return 0;
27268}
27269
27270static int msm_routing_instance_id_support_get(
27271 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
27272{
27273 bool supported = false;
27274
27275 supported = q6common_is_instance_id_supported();
27276 ucontrol->value.integer.value[0] = supported ? 1 : 0;
27277
27278 return 0;
27279}
27280
27281static const struct snd_kcontrol_new
27282 msm_routing_feature_support_mixer_controls[] = {
27283 {
27284 .access = SNDRV_CTL_ELEM_ACCESS_READ |
27285 SNDRV_CTL_ELEM_ACCESS_WRITE,
27286 .info = msm_routing_instance_id_support_info,
27287 .name = "Instance ID Support",
27288 .put = msm_routing_instance_id_support_put,
27289 .get = msm_routing_instance_id_support_get,
27290 },
27291};
27292
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027293static const struct snd_pcm_ops msm_routing_pcm_ops = {
27294 .hw_params = msm_pcm_routing_hw_params,
27295 .close = msm_pcm_routing_close,
27296 .prepare = msm_pcm_routing_prepare,
27297};
27298
27299/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080027300static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027301{
Meng Wangee084a02018-09-04 16:11:58 +080027302 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027303 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080027304 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
27305 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080027306 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027307 ARRAY_SIZE(intercon));
27308
Meng Wangee084a02018-09-04 16:11:58 +080027309 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027310
Meng Wangee084a02018-09-04 16:11:58 +080027311 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027312 ARRAY_SIZE(lsm_controls));
27313
Meng Wangee084a02018-09-04 16:11:58 +080027314 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027315 ARRAY_SIZE(aanc_slim_0_rx_mux));
27316
Meng Wangee084a02018-09-04 16:11:58 +080027317 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053027318 ARRAY_SIZE(aanc_noise_level));
27319
Meng Wangee084a02018-09-04 16:11:58 +080027320 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027321 ARRAY_SIZE(msm_voc_session_controls));
27322
Meng Wangee084a02018-09-04 16:11:58 +080027323 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027324 ARRAY_SIZE(app_type_cfg_controls));
27325
Meng Wangee084a02018-09-04 16:11:58 +080027326 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027327 ARRAY_SIZE(lsm_app_type_cfg_controls));
27328
Meng Wangee084a02018-09-04 16:11:58 +080027329 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070027330 ARRAY_SIZE(module_cfg_controls));
27331
Meng Wangee084a02018-09-04 16:11:58 +080027332 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027333 stereo_to_custom_stereo_controls,
27334 ARRAY_SIZE(stereo_to_custom_stereo_controls));
27335
Meng Wangee084a02018-09-04 16:11:58 +080027336 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027337 ARRAY_SIZE(ec_ref_param_controls));
27338
Meng Wangee084a02018-09-04 16:11:58 +080027339 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027340 ARRAY_SIZE(channel_mixer_controls));
27341
Meng Wangee084a02018-09-04 16:11:58 +080027342 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027343
Meng Wangee084a02018-09-04 16:11:58 +080027344 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027345
Meng Wangee084a02018-09-04 16:11:58 +080027346 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027347
Meng Wangee084a02018-09-04 16:11:58 +080027348 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027349 use_ds1_or_ds2_controls,
27350 ARRAY_SIZE(use_ds1_or_ds2_controls));
27351
Meng Wangee084a02018-09-04 16:11:58 +080027352 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027353 device_pp_params_mixer_controls,
27354 ARRAY_SIZE(device_pp_params_mixer_controls));
27355
Meng Wangee084a02018-09-04 16:11:58 +080027356 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027357 msm_routing_be_dai_name_table_mixer_controls,
27358 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
27359
Meng Wangee084a02018-09-04 16:11:58 +080027360 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027361 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080027362 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027363 ARRAY_SIZE(adm_channel_config_controls));
27364
Meng Wangee084a02018-09-04 16:11:58 +080027365 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027366 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080027367 snd_soc_add_component_controls(component,
27368 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027369 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080027370 snd_soc_add_component_controls(
27371 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027372 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053027373 snd_soc_add_component_controls(component,
27374 port_multi_channel_map_mixer_controls,
27375 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027376
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027377 return 0;
27378}
27379
27380int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
27381{
27382 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
27383}
27384
27385void msm_routing_pcm_free(struct snd_pcm *pcm)
27386{
27387 msm_pcm_routing_hwdep_free(pcm);
27388}
27389
Meng Wangee084a02018-09-04 16:11:58 +080027390static struct snd_soc_component_driver msm_soc_routing_component = {
27391 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027392 .ops = &msm_routing_pcm_ops,
27393 .probe = msm_routing_probe,
27394 .pcm_new = msm_routing_pcm_new,
27395 .pcm_free = msm_routing_pcm_free,
27396};
27397
27398static int msm_routing_pcm_probe(struct platform_device *pdev)
27399{
27400
27401 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080027402 return snd_soc_register_component(&pdev->dev,
27403 &msm_soc_routing_component,
27404 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027405}
27406
27407static int msm_routing_pcm_remove(struct platform_device *pdev)
27408{
Meng Wangee084a02018-09-04 16:11:58 +080027409 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027410 return 0;
27411}
27412
27413static const struct of_device_id msm_pcm_routing_dt_match[] = {
27414 {.compatible = "qcom,msm-pcm-routing"},
27415 {}
27416};
27417MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
27418
27419static struct platform_driver msm_routing_pcm_driver = {
27420 .driver = {
27421 .name = "msm-pcm-routing",
27422 .owner = THIS_MODULE,
27423 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080027424 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027425 },
27426 .probe = msm_routing_pcm_probe,
27427 .remove = msm_routing_pcm_remove,
27428};
27429
27430int msm_routing_check_backend_enabled(int fedai_id)
27431{
27432 int i;
27433
27434 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
27435 /* bad ID assigned in machine driver */
27436 pr_err("%s: bad MM ID\n", __func__);
27437 return 0;
27438 }
27439 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
27440 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
27441 return msm_bedais[i].active;
27442 }
27443 return 0;
27444}
27445
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027446static int get_cal_type_index(int32_t cal_type)
27447{
27448 int ret = -EINVAL;
27449
27450 switch (cal_type) {
27451 case ADM_TOPOLOGY_CAL_TYPE:
27452 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
27453 break;
27454 case ADM_LSM_TOPOLOGY_CAL_TYPE:
27455 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
27456 break;
27457 default:
27458 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
27459 }
27460 return ret;
27461}
27462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027463static int msm_routing_set_cal(int32_t cal_type,
27464 size_t data_size, void *data)
27465{
27466 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027467 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027468 pr_debug("%s\n", __func__);
27469
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027470 cal_index = get_cal_type_index(cal_type);
27471 if (cal_index < 0) {
27472 pr_err("%s: Could not get cal index %d\n",
27473 __func__, cal_index);
27474 ret = -EINVAL;
27475 goto done;
27476 }
27477
27478 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027479 if (ret < 0) {
27480 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
27481 __func__, ret, cal_type);
27482 ret = -EINVAL;
27483 goto done;
27484 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027485 /* Pre-load if it is ADM topology */
27486 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
27487 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
27488 msm_routing_load_topology(data_size, data);
27489 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027490done:
27491 return ret;
27492}
27493
27494static void msm_routing_delete_cal_data(void)
27495{
27496 pr_debug("%s\n", __func__);
27497
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027498 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027499}
27500
27501static int msm_routing_init_cal_data(void)
27502{
27503 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027504 struct cal_type_info cal_type_info[] = {
27505 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027506 {NULL, NULL, NULL,
27507 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027508 {NULL, NULL, cal_utils_match_buf_num} },
27509
27510 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
27511 {NULL, NULL, NULL,
27512 msm_routing_set_cal, NULL, NULL} },
27513 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027514 };
27515 pr_debug("%s\n", __func__);
27516
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027517 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
27518 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027519 if (ret < 0) {
27520 pr_err("%s: could not create cal type!\n",
27521 __func__);
27522 ret = -EINVAL;
27523 goto err;
27524 }
27525
27526 return ret;
27527err:
27528 msm_routing_delete_cal_data();
27529 return ret;
27530}
27531
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053027532int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027533{
27534 mutex_init(&routing_lock);
27535 if (msm_routing_init_cal_data())
27536 pr_err("%s: could not init cal data!\n", __func__);
27537
27538 afe_set_routing_callback(
27539 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
27540
27541 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
27542 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
27543
27544 return platform_driver_register(&msm_routing_pcm_driver);
27545}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027546
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053027547void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027548{
27549 msm_routing_delete_cal_data();
27550 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
27551 mutex_destroy(&routing_lock);
27552 platform_driver_unregister(&msm_routing_pcm_driver);
27553}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027554
27555MODULE_DESCRIPTION("MSM routing platform driver");
27556MODULE_LICENSE("GPL v2");