blob: 7baff1f0b2bb42ee181555f2c9d72f632c907286 [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
Han Lu7b6c5882019-06-09 16:03:21 +080019085static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
19086 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19087 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
19088 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19089 msm_routing_get_port_mixer,
19090 msm_routing_put_port_mixer),
19091};
19092
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019093static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019094 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019096 MSM_BACKEND_DAI_PRI_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19099 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019100 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
19103 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019104 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
19105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019106 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019108 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
19111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019112 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19113 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019114 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
19116 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019118 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19119 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019120 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019122 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19123 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019124 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19125 msm_routing_put_port_mixer),
19126};
19127
19128static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019129 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019131 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
19134 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019135 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
19138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019141 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019143 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
19146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019147 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19148 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019149 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
19151 MSM_BACKEND_DAI_SENARY_MI2S_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_0_TX", SND_SOC_NOPM,
19154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019155 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019159 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
19160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019161 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019163 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019165 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019167 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
19168 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019169};
19170
19171static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19177 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19181 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19185 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19189 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019196 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19197 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019198 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19199 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019200 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19201 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019202 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19203 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019204 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19205 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19206 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19207 msm_routing_put_listen_mixer),
19208 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19209 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19210 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19211 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019212 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19214 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19215 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019216 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19217 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19218 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19219 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019220 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19221 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19222 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19223 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019224};
19225
19226static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019227 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19228 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019229 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19230 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019231 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
19232 SND_SOC_NOPM,
19233 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19237 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19241 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19245 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19249 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019252 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19253 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019254 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19255 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019256 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19257 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019258 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19259 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019260 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19261 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19262 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19263 msm_routing_put_listen_mixer),
19264 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19265 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19266 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19267 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019268 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19269 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19270 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19271 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019272 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19273 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19274 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19275 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019276 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19277 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19278 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19279 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019280};
19281
19282static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019283 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19284 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19288 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19292 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19300 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19304 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019307 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19308 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019309 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19310 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019311 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19312 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019313 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19314 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019315 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19317 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19318 msm_routing_put_listen_mixer),
19319 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19320 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19321 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19322 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019323 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19324 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19325 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19326 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19329 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19330 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019331 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19332 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19333 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
19334 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019335};
19336
19337static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019338 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19339 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19343 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19347 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19355 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19359 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019362 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19363 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019364 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19365 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019366 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19367 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019368 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19369 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19372 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19373 msm_routing_put_listen_mixer),
19374 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19375 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19376 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19377 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019378 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19379 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19380 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19381 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019382 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19383 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19384 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19385 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019386 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19387 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19388 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
19389 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019390};
19391
19392static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019393 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19394 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19398 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19402 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19406 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19410 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019417 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19418 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019419 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19420 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019421 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19422 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019423 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19424 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019425 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19426 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19427 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19428 msm_routing_put_listen_mixer),
19429 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19430 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19431 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19432 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019433 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19435 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19436 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019437 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19438 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19439 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19440 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019441 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19442 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19443 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
19444 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019445};
19446
19447static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019448 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19453 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19457 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19461 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19465 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019472 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19473 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019474 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19475 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019476 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19477 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019478 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19479 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19482 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19483 msm_routing_put_listen_mixer),
19484 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19485 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19486 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19487 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019488 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19489 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19490 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19491 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019492 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19493 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19494 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19495 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019496 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19497 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19498 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
19499 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019500};
19501
19502static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019503 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19504 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19508 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19516 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19520 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19524 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019527 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19528 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019529 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19530 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019531 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019533 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19534 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019535 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19536 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19537 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19538 msm_routing_put_listen_mixer),
19539 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19540 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19541 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19542 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019543 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19544 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19545 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19546 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19548 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19549 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19550 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019551 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19552 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19553 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
19554 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019555};
19556
19557static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019558 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19559 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
19563 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_SLIMBUS_3_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("SLIMBUS_4_TX", SND_SOC_NOPM,
19571 MSM_BACKEND_DAI_SLIMBUS_4_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("SLIMBUS_5_TX", SND_SOC_NOPM,
19575 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
19579 MSM_BACKEND_DAI_TERTIARY_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019582 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19583 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019584 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19585 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019586 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019588 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19589 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019590 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19591 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19592 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19593 msm_routing_put_listen_mixer),
19594 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19595 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19596 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19597 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019598 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19599 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19600 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19601 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019602 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19603 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19604 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19605 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019606 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19607 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19608 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
19609 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019610};
19611
19612static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
19613 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19614 0, 1, 0, msm_routing_get_switch_mixer,
19615 msm_routing_put_switch_mixer);
19616
19617static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
19618 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19619 0, 1, 0, msm_routing_get_switch_mixer,
19620 msm_routing_put_switch_mixer);
19621
19622static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
19623 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19624 0, 1, 0, msm_routing_get_switch_mixer,
19625 msm_routing_put_switch_mixer);
19626
19627static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
19628 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19629 0, 1, 0, msm_routing_get_switch_mixer,
19630 msm_routing_put_switch_mixer);
19631
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019632static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
19633 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19634 0, 1, 0, msm_routing_get_switch_mixer,
19635 msm_routing_put_switch_mixer);
19636
19637static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019638 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19639 0, 1, 0, msm_routing_get_switch_mixer,
19640 msm_routing_put_switch_mixer);
19641
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019642static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
19643 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19644 0, 1, 0, msm_routing_get_switch_mixer,
19645 msm_routing_put_switch_mixer);
19646
19647static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
19648 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19649 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
19650 msm_routing_put_fm_pcmrx_switch_mixer);
19651
19652static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
19653 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19654 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
19655 msm_routing_put_int0_mi2s_switch_mixer);
19656
19657static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
19658 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19659 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
19660 msm_routing_put_int4_mi2s_switch_mixer);
19661
19662static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
19663 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19664 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
19665 msm_routing_put_pri_mi2s_switch_mixer);
19666
19667static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
19668 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19669 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
19670 msm_routing_put_sec_mi2s_switch_mixer);
19671
19672static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
19673 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19674 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
19675 msm_routing_put_tert_mi2s_switch_mixer);
19676
19677static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
19678 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19679 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
19680 msm_routing_put_quat_mi2s_switch_mixer);
19681
Rohit Kumara5077932017-09-10 22:05:05 +053019682static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
19683 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19684 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
19685 msm_routing_put_quin_mi2s_switch_mixer);
19686
Karthikeyan Manic3700752019-03-11 18:33:53 -070019687static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
19688 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19689 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
19690 msm_routing_put_sen_mi2s_switch_mixer);
19691
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019692static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
19693 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19694 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19695 msm_routing_put_hfp_switch_mixer);
19696
19697static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
19698 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19699 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19700 msm_routing_put_hfp_switch_mixer);
19701
19702static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
19703 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19704 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19705 msm_routing_put_hfp_switch_mixer);
19706
19707static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
19708 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19709 0, 1, 0, msm_routing_get_hfp_switch_mixer,
19710 msm_routing_put_hfp_switch_mixer);
19711
19712static const struct snd_kcontrol_new usb_switch_mixer_controls =
19713 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19714 0, 1, 0, msm_routing_get_usb_switch_mixer,
19715 msm_routing_put_usb_switch_mixer);
19716
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019717static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
19718 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19719 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
19720 msm_routing_a2dp_switch_mixer_put);
19721
Zhou Songcaa541d2019-02-19 18:37:47 +080019722static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
19723 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
19724 0, 1, 0, msm_routing_sco_switch_mixer_get,
19725 msm_routing_sco_switch_mixer_put);
19726
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019727static const struct soc_enum lsm_port_enum =
19728 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
19729
19730static const char * const lsm_func_text[] = {
19731 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
19732};
19733static const struct soc_enum lsm_func_enum =
19734 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
19735
19736static const struct snd_kcontrol_new lsm_controls[] = {
19737 /* kcontrol of lsm_function */
19738 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19739 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19740 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19741 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19742 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19743 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19744 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19745 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19746 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19747 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19748 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19749 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19750 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19751 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19752 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19753 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
19754 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19755 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019756 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19757 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019758 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
19759 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019760 /* kcontrol of lsm_port */
19761 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
19762 msm_routing_lsm_port_get,
19763 msm_routing_lsm_port_put),
19764 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
19765 msm_routing_lsm_port_get,
19766 msm_routing_lsm_port_put),
19767 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
19768 msm_routing_lsm_port_get,
19769 msm_routing_lsm_port_put),
19770 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
19771 msm_routing_lsm_port_get,
19772 msm_routing_lsm_port_put),
19773 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
19774 msm_routing_lsm_port_get,
19775 msm_routing_lsm_port_put),
19776 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
19777 msm_routing_lsm_port_get,
19778 msm_routing_lsm_port_put),
19779 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
19780 msm_routing_lsm_port_get,
19781 msm_routing_lsm_port_put),
19782 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
19783 msm_routing_lsm_port_get,
19784 msm_routing_lsm_port_put),
19785};
19786
19787static const char * const aanc_slim_0_rx_text[] = {
19788 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
19789 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
19790};
19791
19792static const struct soc_enum aanc_slim_0_rx_enum =
19793 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
19794 aanc_slim_0_rx_text);
19795
19796static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
19797 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
19798 msm_routing_slim_0_rx_aanc_mux_get,
19799 msm_routing_slim_0_rx_aanc_mux_put)
19800};
19801
Sudheer Papothic07b37a2018-05-04 05:56:47 +053019802static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
19803 struct snd_ctl_elem_value *ucontrol)
19804{
19805 ucontrol->value.integer.value[0] = aanc_level;
19806
19807 return 0;
19808}
19809
19810static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
19811 struct snd_ctl_elem_value *ucontrol)
19812{
19813 int ret = 0;
19814
19815 mutex_lock(&routing_lock);
19816 aanc_level = ucontrol->value.integer.value[0];
19817 pr_debug("%s: value: %ld\n",
19818 __func__, ucontrol->value.integer.value[0]);
19819 ret = afe_set_aanc_noise_level(aanc_level);
19820 mutex_unlock(&routing_lock);
19821
19822 return ret;
19823}
19824
19825static const struct snd_kcontrol_new aanc_noise_level[] = {
19826 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
19827 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
19828};
19829
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019830static int msm_routing_get_stereo_to_custom_stereo_control(
19831 struct snd_kcontrol *kcontrol,
19832 struct snd_ctl_elem_value *ucontrol)
19833{
19834 ucontrol->value.integer.value[0] = is_custom_stereo_on;
19835 return 0;
19836}
19837
19838static int msm_routing_put_stereo_to_custom_stereo_control(
19839 struct snd_kcontrol *kcontrol,
19840 struct snd_ctl_elem_value *ucontrol)
19841{
19842 int flag = 0, i = 0, rc = 0, idx = 0;
19843 int be_index = 0, port_id, topo_id;
19844 unsigned int session_id = 0;
19845 uint16_t op_FL_ip_FL_weight = 0;
19846 uint16_t op_FL_ip_FR_weight = 0;
19847 uint16_t op_FR_ip_FL_weight = 0;
19848 uint16_t op_FR_ip_FR_weight = 0;
19849
19850 flag = ucontrol->value.integer.value[0];
19851 pr_debug("%s E flag %d\n", __func__, flag);
19852
19853 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
19854 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
19855 __func__, is_custom_stereo_on, flag);
19856 return 0;
19857 }
19858 is_custom_stereo_on = flag ? true : false;
19859 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
19860 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
19861 port_id = msm_bedais[be_index].port_id;
19862 if (!msm_bedais[be_index].active)
19863 continue;
19864 if ((port_id != SLIMBUS_0_RX) &&
19865 (port_id != RT_PROXY_PORT_001_RX) &&
19866 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
19867 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
19868 continue;
19869
19870 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
19871 MSM_FRONTEND_DAI_MM_SIZE) {
19872 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
19873 LEGACY_PCM_MODE)
19874 goto skip_send_custom_stereo;
19875 session_id =
19876 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
19877 if (is_custom_stereo_on) {
19878 op_FL_ip_FL_weight =
19879 Q14_GAIN_ZERO_POINT_FIVE;
19880 op_FL_ip_FR_weight =
19881 Q14_GAIN_ZERO_POINT_FIVE;
19882 op_FR_ip_FL_weight =
19883 Q14_GAIN_ZERO_POINT_FIVE;
19884 op_FR_ip_FR_weight =
19885 Q14_GAIN_ZERO_POINT_FIVE;
19886 } else {
19887 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
19888 op_FL_ip_FR_weight = 0;
19889 op_FR_ip_FL_weight = 0;
19890 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
19891 }
19892 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19893 unsigned long copp =
19894 session_copp_map[i]
19895 [SESSION_TYPE_RX][be_index];
19896 if (!test_bit(idx, &copp))
19897 goto skip_send_custom_stereo;
19898 topo_id = adm_get_topology_for_port_copp_idx(
19899 msm_bedais[be_index].port_id, idx);
19900 if (topo_id < 0)
19901 pr_debug("%s:Err:custom stereo topo %d",
19902 __func__, topo_id);
19903 pr_debug("idx %d\n", idx);
19904 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
19905 rc = msm_ds2_dap_set_custom_stereo_onoff
19906 (msm_bedais[be_index].port_id,
19907 idx, is_custom_stereo_on);
19908 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
19909 rc = dolby_dap_set_custom_stereo_onoff(
19910 msm_bedais[be_index].port_id,
19911 idx, is_custom_stereo_on);
19912 else
19913 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
19914 (msm_bedais[be_index].port_id,
19915 idx, session_id,
19916 op_FL_ip_FL_weight,
19917 op_FL_ip_FR_weight,
19918 op_FR_ip_FL_weight,
19919 op_FR_ip_FR_weight);
19920 if (rc < 0)
19921skip_send_custom_stereo:
19922 pr_err("%s: err setting custom stereo\n",
19923 __func__);
19924 }
19925
19926 }
19927 }
19928 return 0;
19929}
19930
19931static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
19932 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
19933 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
19934 msm_routing_put_stereo_to_custom_stereo_control),
19935};
19936
19937static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
19938 struct snd_ctl_elem_value *ucontrol)
19939{
19940 return 0;
19941}
19942
19943static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
19944 struct snd_ctl_elem_value *ucontrol)
19945{
19946 int i = 0, j;
19947 int num_app_types = ucontrol->value.integer.value[i++];
19948
19949 pr_debug("%s\n", __func__);
19950
19951 memset(app_type_cfg, 0, MAX_APP_TYPES*
19952 sizeof(struct msm_pcm_routing_app_type_data));
19953 if (num_app_types > MAX_APP_TYPES) {
19954 pr_err("%s: number of app types exceed the max supported\n",
19955 __func__);
19956 return -EINVAL;
19957 }
19958 for (j = 0; j < num_app_types; j++) {
19959 app_type_cfg[j].app_type =
19960 ucontrol->value.integer.value[i++];
19961 app_type_cfg[j].sample_rate =
19962 ucontrol->value.integer.value[i++];
19963 app_type_cfg[j].bit_width =
19964 ucontrol->value.integer.value[i++];
19965 }
19966
19967 return 0;
19968}
19969
19970static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
19971 struct snd_ctl_elem_value *ucontrol)
19972{
19973 int j, fe_id, be_id, port_type;
19974 int ret = 0;
19975 unsigned long copp;
19976 struct msm_pcm_routing_bdai_data *bedai;
19977 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
19978 SESSION_TYPE_RX;
19979 int app_type = ucontrol->value.integer.value[1];
19980 int gain = (ucontrol->value.integer.value[2] +
19981 ucontrol->value.integer.value[3])/2;
19982
19983 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
19984 MSM_AFE_PORT_TYPE_TX;
19985
19986 mutex_lock(&routing_lock);
19987 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
19988 if (is_be_dai_extproc(be_id))
19989 continue;
19990
19991 bedai = &msm_bedais[be_id];
19992 if (afe_get_port_type(bedai->port_id) != port_type)
19993 continue;
19994
19995 if (!bedai->active)
19996 continue;
19997
19998 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
19999 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
20000 continue;
20001
20002 if (app_type !=
20003 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
20004 continue;
20005
20006 copp = session_copp_map[fe_id][dir][be_id];
20007 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
20008 if (!test_bit(j, &copp))
20009 continue;
20010 ret |= adm_set_volume(bedai->port_id, j, gain);
20011 }
20012 }
20013 }
20014 mutex_unlock(&routing_lock);
20015 return ret ? -EINVAL : 0;
20016}
20017
20018static const struct snd_kcontrol_new app_type_cfg_controls[] = {
20019 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
20020 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
20021 msm_routing_put_app_type_cfg_control),
20022 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
20023 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
20024};
20025
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020026static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
20027 struct snd_ctl_elem_value *ucontrol)
20028{
20029 int copp_idx, fe_id, be_id, port_type;
20030 int ret = 0;
20031 unsigned long copp;
20032 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020033 u8 *packed_params = NULL;
20034 struct param_hdr_v3 param_hdr;
20035 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
20036 sizeof(uint32_t));
20037
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020038 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
20039 SESSION_TYPE_RX;
20040 int app_type = ucontrol->value.integer.value[1];
20041 int module_id = ucontrol->value.integer.value[2];
20042 int instance_id = ucontrol->value.integer.value[3];
20043 int param_id = ucontrol->value.integer.value[4];
20044 int param_value = ucontrol->value.integer.value[5];
20045
20046 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
20047 MSM_AFE_PORT_TYPE_TX;
20048 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
20049 __func__, app_type, module_id,
20050 instance_id, param_id, param_value);
20051
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020052 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
20053 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020054 return -ENOMEM;
20055
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020056 memset(&param_hdr, 0, sizeof(param_hdr));
20057 param_hdr.module_id = module_id;
20058 param_hdr.instance_id = instance_id;
20059 param_hdr.param_id = param_id;
20060 param_hdr.param_size = sizeof(uint32_t);
20061
20062 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020063
20064 mutex_lock(&routing_lock);
20065 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
20066 if (is_be_dai_extproc(be_id))
20067 continue;
20068
20069 bedai = &msm_bedais[be_id];
20070 if (afe_get_port_type(bedai->port_id) != port_type)
20071 continue;
20072
20073 if (!bedai->active)
20074 continue;
20075
20076 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
20077 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
20078 continue;
20079
20080 if (app_type !=
20081 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
20082 continue;
20083
20084 copp = session_copp_map[fe_id][dir][be_id];
20085 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
20086 copp_idx++) {
20087 if (!test_bit(copp_idx, &copp))
20088 continue;
20089
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020090 ret = q6common_pack_pp_params(packed_params,
20091 &param_hdr,
20092 (u8 *) &param_value,
20093 &packed_param_size);
20094 if (ret) {
20095 pr_err("%s: Failed to pack params, error %d\n",
20096 __func__, ret);
20097 goto done;
20098 }
20099
20100 ret = adm_set_pp_params(bedai->port_id,
20101 copp_idx, NULL,
20102 packed_params,
20103 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020104 if (ret) {
20105 pr_err("%s: Setting param failed with err=%d\n",
20106 __func__, ret);
20107 ret = -EINVAL;
20108 goto done;
20109 }
20110 }
20111 }
20112 }
20113done:
20114 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020115 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020116 return ret;
20117}
20118
20119static const struct snd_kcontrol_new module_cfg_controls[] = {
20120 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
20121 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
20122};
20123
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020124static int msm_routing_get_lsm_app_type_cfg_control(
20125 struct snd_kcontrol *kcontrol,
20126 struct snd_ctl_elem_value *ucontrol)
20127{
Meng Wangadbca4f2018-10-29 14:30:13 +080020128 int shift = ((struct soc_multi_mixer_control *)
20129 kcontrol->private_value)->shift;
20130 int i = 0, j = 0;
20131
20132 ucontrol->value.integer.value[i] = num_app_cfg_types;
20133
20134 for (j = 0; j < num_app_cfg_types; ++j) {
20135 ucontrol->value.integer.value[++i] =
20136 lsm_app_type_cfg[j].app_type;
20137 ucontrol->value.integer.value[++i] =
20138 lsm_app_type_cfg[j].sample_rate;
20139 ucontrol->value.integer.value[++i] =
20140 lsm_app_type_cfg[j].bit_width;
20141 if (shift == 1)
20142 ucontrol->value.integer.value[++i] =
20143 lsm_app_type_cfg[j].num_out_channels;
20144 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020145 return 0;
20146}
20147
20148static int msm_routing_put_lsm_app_type_cfg_control(
20149 struct snd_kcontrol *kcontrol,
20150 struct snd_ctl_elem_value *ucontrol)
20151{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020152 int shift = ((struct soc_multi_mixer_control *)
20153 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020154 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020155
Meng Wangadbca4f2018-10-29 14:30:13 +080020156 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020157 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020158 sizeof(struct msm_pcm_routing_app_type_data));
20159
Meng Wangadbca4f2018-10-29 14:30:13 +080020160 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020161 pr_err("%s: number of app types exceed the max supported\n",
20162 __func__);
20163 return -EINVAL;
20164 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020165
Meng Wangadbca4f2018-10-29 14:30:13 +080020166 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020167 lsm_app_type_cfg[j].app_type =
20168 ucontrol->value.integer.value[i++];
20169 lsm_app_type_cfg[j].sample_rate =
20170 ucontrol->value.integer.value[i++];
20171 lsm_app_type_cfg[j].bit_width =
20172 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020173 /* Shift of 1 indicates this is V2 mixer control */
20174 if (shift == 1)
20175 lsm_app_type_cfg[j].num_out_channels =
20176 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020177 }
20178
20179 return 0;
20180}
20181
20182static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
20183 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
20184 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20185 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020186 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
20187 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20188 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020189};
20190
20191static int msm_routing_get_use_ds1_or_ds2_control(
20192 struct snd_kcontrol *kcontrol,
20193 struct snd_ctl_elem_value *ucontrol)
20194{
20195 ucontrol->value.integer.value[0] = is_ds2_on;
20196 return 0;
20197}
20198
20199static int msm_routing_put_use_ds1_or_ds2_control(
20200 struct snd_kcontrol *kcontrol,
20201 struct snd_ctl_elem_value *ucontrol)
20202{
20203 is_ds2_on = ucontrol->value.integer.value[0];
20204 return 0;
20205}
20206
20207static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
20208 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
20209 1, 0, msm_routing_get_use_ds1_or_ds2_control,
20210 msm_routing_put_use_ds1_or_ds2_control),
20211};
20212
20213int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
20214 struct snd_ctl_elem_value *ucontrol) {
20215 int rc = 0;
20216 int be_idx = 0;
20217 char *param_value;
20218 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020219 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
20220 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020221
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020222 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020223 if (!param_value)
20224 return -ENOMEM;
20225
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020226 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020227 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
20228 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
20229 break;
20230 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020231 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
20232 param_hdr.instance_id = INSTANCE_ID_0;
20233 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
20234 param_hdr.param_size = param_size;
20235 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
20236 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020237 if (rc) {
20238 pr_err("%s: get parameters failed:%d\n", __func__, rc);
20239 kfree(param_value);
20240 return -EINVAL;
20241 }
20242 update_param_value = (int *)param_value;
20243 ucontrol->value.integer.value[0] = update_param_value[0];
20244
20245 pr_debug("%s: FROM DSP value[0] 0x%x\n",
20246 __func__, update_param_value[0]);
20247 }
20248 kfree(param_value);
20249 return 0;
20250}
20251
20252static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
20253 struct snd_ctl_elem_value *ucontrol)
20254{
20255 voc_session_id = ucontrol->value.integer.value[0];
20256
20257 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
20258
20259 return 0;
20260}
20261
20262static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
20263 struct snd_ctl_elem_value *ucontrol)
20264{
20265 ucontrol->value.integer.value[0] = voc_session_id;
20266
20267 return 0;
20268}
20269
20270static struct snd_kcontrol_new msm_voc_session_controls[] = {
20271 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
20272 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
20273 msm_voc_session_id_put),
20274};
20275
20276static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
20277 struct snd_ctl_elem_info *uinfo)
20278{
20279 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20280 uinfo->count = sizeof(struct sound_focus_param);
20281
20282 return 0;
20283}
20284
20285static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
20286 struct snd_ctl_elem_value *ucontrol)
20287{
20288 int ret = 0;
20289 struct sound_focus_param soundFocusData;
20290
20291 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
20292 sizeof(struct sound_focus_param));
20293 ret = voc_set_sound_focus(soundFocusData);
20294 if (ret) {
20295 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
20296 __func__, ret);
20297
20298 ret = -EINVAL;
20299 }
20300
20301 return ret;
20302}
20303
20304static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
20305 struct snd_ctl_elem_value *ucontrol)
20306{
20307 int ret = 0;
20308 struct sound_focus_param soundFocusData;
20309
20310 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
20311
20312 ret = voc_get_sound_focus(&soundFocusData);
20313 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020314 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020315 __func__, ret);
20316
20317 ret = -EINVAL;
20318 goto done;
20319 }
20320 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
20321 sizeof(struct sound_focus_param));
20322
20323done:
20324 return ret;
20325}
20326
20327static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
20328 struct snd_ctl_elem_info *uinfo)
20329{
20330 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20331 uinfo->count = sizeof(struct source_tracking_param);
20332
20333 return 0;
20334}
20335
20336static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
20337 struct snd_ctl_elem_value *ucontrol)
20338{
Meng Wang92edfde2018-04-24 12:18:37 +080020339 int ret = 0;
20340 struct source_tracking_param sourceTrackingData;
20341
20342 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
20343
20344 ret = voc_get_source_tracking(&sourceTrackingData);
20345 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020346 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080020347 __func__, ret);
20348
20349 ret = -EINVAL;
20350 goto done;
20351 }
20352 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
20353 sizeof(struct source_tracking_param));
20354
20355done:
20356 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020357}
20358
20359static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
20360 int *copp_idx)
20361{
20362 int i, idx, be_idx;
20363 int ret = 0;
20364 unsigned long copp;
20365
20366 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
20367
20368 ret = q6audio_validate_port(port_id);
20369 if (ret < 0) {
20370 pr_err("%s: port validation failed id 0x%x ret %d\n",
20371 __func__, port_id, ret);
20372
20373 ret = -EINVAL;
20374 goto done;
20375 }
20376
20377 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
20378 if (msm_bedais[be_idx].port_id == port_id)
20379 break;
20380 }
20381 if (be_idx >= MSM_BACKEND_DAI_MAX) {
20382 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
20383
20384 ret = -EINVAL;
20385 goto done;
20386 }
20387
20388 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020389 MSM_FRONTEND_DAI_MAX) {
20390 if (!(is_mm_lsm_fe_id(i) &&
20391 route_check_fe_id_adm_support(i)))
20392 continue;
20393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020394 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
20395 copp = session_copp_map[i]
20396 [session_type][be_idx];
20397 if (test_bit(idx, &copp))
20398 break;
20399 }
20400 if (idx >= MAX_COPPS_PER_PORT)
20401 continue;
20402 else
20403 break;
20404 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020405 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020406 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020407
20408 ret = -EINVAL;
20409 goto done;
20410 }
20411 *copp_idx = idx;
20412 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
20413
20414done:
20415 return ret;
20416}
20417
20418static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
20419 const char *prefix, int *port_id)
20420{
20421 int ret = 0;
20422
20423 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
20424
20425 /*
20426 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
20427 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
20428 * and compare the string with the backend name to derive the port id.
20429 */
20430 if (!strcmp(kcontrol->id.name + strlen(prefix),
20431 "SLIMBUS_0")) {
20432 *port_id = SLIMBUS_0_TX;
20433 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20434 "TERT_MI2S")) {
20435 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
20436 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20437 "INT3_MI2S")) {
20438 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053020439 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20440 "VA_CDC_DMA_TX_0")) {
20441 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053020442 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20443 "TX_CDC_DMA_TX_3")) {
20444 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020445 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20446 "QUIN_TDM_TX_0")) {
20447 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053020448 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
20449 "PRIMARY_TDM")) {
20450 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020451 } else {
20452 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
20453 __func__, kcontrol->id.name);
20454
20455 ret = -EINVAL;
20456 goto done;
20457 }
20458 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
20459 __func__, kcontrol->id.name, *port_id);
20460
20461done:
20462 return ret;
20463}
20464
20465static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
20466 struct snd_ctl_elem_value *ucontrol)
20467{
20468 int ret = 0;
20469 struct sound_focus_param soundFocusData;
20470 int port_id, copp_idx;
20471
20472 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20473 "Sound Focus Audio Tx ", &port_id);
20474 if (ret != 0) {
20475 pr_err("%s: Error in deriving port id, err=%d\n",
20476 __func__, ret);
20477
20478 ret = -EINVAL;
20479 goto done;
20480 }
20481
20482 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20483 &copp_idx);
20484 if (ret) {
20485 pr_err("%s: Could not get copp idx for port_id=%d\n",
20486 __func__, port_id);
20487
20488 ret = -EINVAL;
20489 goto done;
20490 }
20491
20492 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
20493 sizeof(struct sound_focus_param));
20494
20495 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
20496 if (ret) {
20497 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
20498 __func__, ret);
20499
20500 ret = -EINVAL;
20501 goto done;
20502 }
20503
20504done:
20505 return ret;
20506}
20507
20508static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
20509 struct snd_ctl_elem_value *ucontrol)
20510{
20511 int ret = 0;
20512 struct sound_focus_param soundFocusData;
20513 int port_id, copp_idx;
20514
20515 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20516 "Sound Focus Audio Tx ", &port_id);
20517 if (ret) {
20518 pr_err("%s: Error in deriving port id, err=%d\n",
20519 __func__, ret);
20520
20521 ret = -EINVAL;
20522 goto done;
20523 }
20524
20525 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20526 &copp_idx);
20527 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020528 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020529 __func__, port_id);
20530
20531 ret = -EINVAL;
20532 goto done;
20533 }
20534
20535 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
20536 if (ret) {
20537 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
20538 __func__, ret);
20539
20540 ret = -EINVAL;
20541 goto done;
20542 }
20543
20544 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
20545 sizeof(struct sound_focus_param));
20546
20547done:
20548 return ret;
20549}
20550
20551static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
20552 struct snd_ctl_elem_value *ucontrol)
20553{
20554 int ret = 0;
20555 struct source_tracking_param sourceTrackingData;
20556 int port_id, copp_idx;
20557
20558 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20559 "Source Tracking Audio Tx ", &port_id);
20560 if (ret) {
20561 pr_err("%s: Error in deriving port id, err=%d\n",
20562 __func__, ret);
20563
20564 ret = -EINVAL;
20565 goto done;
20566 }
20567
20568 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20569 &copp_idx);
20570 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070020571 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020572 __func__, port_id);
20573
20574 ret = -EINVAL;
20575 goto done;
20576 }
20577
20578 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
20579 if (ret) {
20580 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
20581 __func__, ret);
20582
20583 ret = -EINVAL;
20584 goto done;
20585 }
20586
20587 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
20588 sizeof(struct source_tracking_param));
20589
20590done:
20591 return ret;
20592}
20593
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020594static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
20595 struct snd_ctl_elem_info *uinfo)
20596{
20597 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
20598 uinfo->count = sizeof(struct doa_tracking_mon_param);
20599
20600 return 0;
20601}
20602
20603static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
20604 struct snd_ctl_elem_value *ucontrol)
20605{
20606 int ret = 0;
20607 struct doa_tracking_mon_param doa_tracking_data;
20608 int port_id, copp_idx;
20609
20610 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
20611 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
20612 "Doa Tracking Monitor Listen ", &port_id);
20613 if (ret) {
20614 pr_err("%s: Error in deriving port id, err=%d\n",
20615 __func__, ret);
20616 ret = -EINVAL;
20617 goto done;
20618 }
20619
20620 /*
20621 * If copp id exists for given port id, query adm to get doa data.
20622 * Else query afe for doa tracking params.
20623 * This is to support in cases where LSM directly connects to
20624 * AFE for FFNS.
20625 */
20626 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
20627 &copp_idx);
20628 if (!ret)
20629 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
20630 &doa_tracking_data);
20631 else
20632 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
20633
20634 if (ret) {
20635 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
20636 __func__, ret);
20637 ret = -EINVAL;
20638 goto done;
20639 }
20640
20641 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
20642 sizeof(struct doa_tracking_mon_param));
20643done:
20644 return ret;
20645}
20646
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020647static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
20648 {
20649 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20651 .name = "Sound Focus Voice Tx SLIMBUS_0",
20652 .info = msm_sound_focus_info,
20653 .get = msm_voice_sound_focus_get,
20654 .put = msm_voice_sound_focus_put,
20655 },
20656 {
20657 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20658 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20659 .name = "Source Tracking Voice Tx SLIMBUS_0",
20660 .info = msm_source_tracking_info,
20661 .get = msm_voice_source_tracking_get,
20662 },
20663 {
20664 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20666 .name = "Sound Focus Audio Tx SLIMBUS_0",
20667 .info = msm_sound_focus_info,
20668 .get = msm_audio_sound_focus_get,
20669 .put = msm_audio_sound_focus_put,
20670 },
20671 {
20672 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20673 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20674 .name = "Source Tracking Audio Tx SLIMBUS_0",
20675 .info = msm_source_tracking_info,
20676 .get = msm_audio_source_tracking_get,
20677 },
20678 {
20679 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20681 .name = "Sound Focus Voice Tx TERT_MI2S",
20682 .info = msm_sound_focus_info,
20683 .get = msm_voice_sound_focus_get,
20684 .put = msm_voice_sound_focus_put,
20685 },
20686 {
20687 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20688 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20689 .name = "Source Tracking Voice Tx TERT_MI2S",
20690 .info = msm_source_tracking_info,
20691 .get = msm_voice_source_tracking_get,
20692 },
20693 {
20694 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20695 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20696 .name = "Sound Focus Audio Tx TERT_MI2S",
20697 .info = msm_sound_focus_info,
20698 .get = msm_audio_sound_focus_get,
20699 .put = msm_audio_sound_focus_put,
20700 },
20701 {
20702 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20703 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20704 .name = "Source Tracking Audio Tx TERT_MI2S",
20705 .info = msm_source_tracking_info,
20706 .get = msm_audio_source_tracking_get,
20707 },
20708 {
20709 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20711 .name = "Sound Focus Voice Tx INT3_MI2S",
20712 .info = msm_sound_focus_info,
20713 .get = msm_voice_sound_focus_get,
20714 .put = msm_voice_sound_focus_put,
20715 },
20716 {
20717 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20718 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20719 .name = "Source Tracking Voice Tx INT3_MI2S",
20720 .info = msm_source_tracking_info,
20721 .get = msm_voice_source_tracking_get,
20722 },
20723 {
20724 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20725 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20726 .name = "Sound Focus Audio Tx INT3_MI2S",
20727 .info = msm_sound_focus_info,
20728 .get = msm_audio_sound_focus_get,
20729 .put = msm_audio_sound_focus_put,
20730 },
20731 {
20732 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20733 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20734 .name = "Source Tracking Audio Tx INT3_MI2S",
20735 .info = msm_source_tracking_info,
20736 .get = msm_audio_source_tracking_get,
20737 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053020738 {
20739 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20741 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
20742 .info = msm_sound_focus_info,
20743 .get = msm_voice_sound_focus_get,
20744 .put = msm_voice_sound_focus_put,
20745 },
20746 {
20747 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20748 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20749 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
20750 .info = msm_source_tracking_info,
20751 .get = msm_voice_source_tracking_get,
20752 },
20753 {
20754 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20755 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20756 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
20757 .info = msm_sound_focus_info,
20758 .get = msm_audio_sound_focus_get,
20759 .put = msm_audio_sound_focus_put,
20760 },
20761 {
20762 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20763 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20764 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
20765 .info = msm_source_tracking_info,
20766 .get = msm_audio_source_tracking_get,
20767 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053020768 {
20769 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20770 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20771 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
20772 .info = msm_sound_focus_info,
20773 .get = msm_voice_sound_focus_get,
20774 .put = msm_voice_sound_focus_put,
20775 },
20776 {
20777 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20778 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20779 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
20780 .info = msm_source_tracking_info,
20781 .get = msm_voice_source_tracking_get,
20782 },
20783 {
20784 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20785 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20786 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
20787 .info = msm_sound_focus_info,
20788 .get = msm_audio_sound_focus_get,
20789 .put = msm_audio_sound_focus_put,
20790 },
20791 {
20792 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20793 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20794 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
20795 .info = msm_source_tracking_info,
20796 .get = msm_audio_source_tracking_get,
20797 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020798 {
20799 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20800 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20801 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
20802 .info = msm_sound_focus_info,
20803 .get = msm_voice_sound_focus_get,
20804 .put = msm_voice_sound_focus_put,
20805 },
20806 {
20807 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20808 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20809 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
20810 .info = msm_source_tracking_info,
20811 .get = msm_voice_source_tracking_get,
20812 },
20813 {
20814 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20815 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20816 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
20817 .info = msm_sound_focus_info,
20818 .get = msm_audio_sound_focus_get,
20819 .put = msm_audio_sound_focus_put,
20820 },
20821 {
20822 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20824 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
20825 .info = msm_source_tracking_info,
20826 .get = msm_audio_source_tracking_get,
20827 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020828 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053020829 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
20830 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20831 .name = "Sound Focus Audio Tx PRIMARY_TDM",
20832 .info = msm_sound_focus_info,
20833 .get = msm_audio_sound_focus_get,
20834 .put = msm_audio_sound_focus_put,
20835 },
20836 {
20837 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20838 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20839 .name = "Source Tracking Audio Tx PRIMARY_TDM",
20840 .info = msm_source_tracking_info,
20841 .get = msm_audio_source_tracking_get,
20842 },
20843 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053020844 .access = SNDRV_CTL_ELEM_ACCESS_READ,
20845 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
20846 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
20847 .info = msm_doa_tracking_mon_info,
20848 .get = msm_doa_tracking_mon_get,
20849 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020850};
20851
20852static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
20853 struct snd_ctl_elem_value *ucontrol)
20854{
20855 int ret = 0;
20856 int item;
20857 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
20858
20859 pr_debug("%s item is %d\n", __func__,
20860 ucontrol->value.enumerated.item[0]);
20861 mutex_lock(&routing_lock);
20862 item = ucontrol->value.enumerated.item[0];
20863 if (item < e->items) {
20864 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
20865 __func__, e->shift_l, e->values[item]);
20866 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
20867 e->values[item] < MSM_BACKEND_DAI_MAX)
20868 /* Enable feedback TX path */
20869 ret = afe_spk_prot_feed_back_cfg(
20870 msm_bedais[e->values[item]].port_id,
20871 msm_bedais[e->shift_l].port_id, 1, 0, 1);
20872 else {
20873 pr_debug("%s values are out of range item %d\n",
20874 __func__, e->values[item]);
20875 /* Disable feedback TX path */
20876 if (e->values[item] == MSM_BACKEND_DAI_MAX)
20877 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
20878 else
20879 ret = -EINVAL;
20880 }
20881 } else {
20882 pr_err("%s item value is out of range item\n", __func__);
20883 ret = -EINVAL;
20884 }
20885 mutex_unlock(&routing_lock);
20886 return ret;
20887}
20888
20889static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
20890 struct snd_ctl_elem_value *ucontrol)
20891{
20892 int ret = 0;
20893 int item;
20894 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
20895
20896 pr_debug("%s item is %d\n", __func__,
20897 ucontrol->value.enumerated.item[0]);
20898 mutex_lock(&routing_lock);
20899 item = ucontrol->value.enumerated.item[0];
20900 if (item < e->items) {
20901 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
20902 __func__, e->shift_l, e->values[item]);
20903 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
20904 e->values[item] < MSM_BACKEND_DAI_MAX)
20905 /* Enable feedback TX path */
20906 ret = afe_spk_prot_feed_back_cfg(
20907 msm_bedais[e->values[item]].port_id,
20908 msm_bedais[e->shift_l].port_id,
20909 1, 1, 1);
20910 else {
20911 pr_debug("%s values are out of range item %d\n",
20912 __func__, e->values[item]);
20913 /* Disable feedback TX path */
20914 if (e->values[item] == MSM_BACKEND_DAI_MAX)
20915 ret = afe_spk_prot_feed_back_cfg(0,
20916 0, 0, 0, 0);
20917 else
20918 ret = -EINVAL;
20919 }
20920 } else {
20921 pr_err("%s item value is out of range item\n", __func__);
20922 ret = -EINVAL;
20923 }
20924 mutex_unlock(&routing_lock);
20925 return ret;
20926}
20927
20928static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
20929 struct snd_ctl_elem_value *ucontrol)
20930{
20931 pr_debug("%s\n", __func__);
20932 return 0;
20933}
20934
20935static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
20936 struct snd_ctl_elem_value *ucontrol)
20937{
20938 pr_debug("%s\n", __func__);
20939 ucontrol->value.enumerated.item[0] = 0;
20940 return 0;
20941}
20942
20943static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
20944 "ZERO", "SLIM4_TX"
20945};
20946
20947static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
20948 "ZERO", "SLIM4_TX"
20949};
20950
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020951static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
20952 "ZERO", "WSA_CDC_DMA_TX_0"
20953};
20954
20955static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
20956 "ZERO", "WSA_CDC_DMA_TX_0"
20957};
20958
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020959static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
20960 "ZERO", "SENARY_TX"
20961};
20962
20963static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
20964 "ZERO", "INT5_MI2S_TX"
20965};
20966
20967static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
20968 "ZERO", "INT5_MI2S_TX"
20969};
20970
Josh Kirschea69fed2018-12-11 16:15:08 -080020971static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020972 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
20973};
20974
Josh Kirschea69fed2018-12-11 16:15:08 -080020975static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
20977};
20978
Josh Kirschea69fed2018-12-11 16:15:08 -080020979static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020980 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
20981};
20982
Josh Kirschea69fed2018-12-11 16:15:08 -080020983static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020984 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
20985};
20986
20987
Josh Kirschea69fed2018-12-11 16:15:08 -080020988static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020989 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
20990};
20991
Josh Kirschea69fed2018-12-11 16:15:08 -080020992static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020993 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
20994};
20995
Josh Kirschea69fed2018-12-11 16:15:08 -080020996static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020997 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
20998};
20999
21000static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
21001 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
21002 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
21003 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
21004
21005static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
21006 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
21007 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
21008 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
21009
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021010static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
21011 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21012 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
21013 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
21014
21015static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
21016 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21017 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
21018 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
21019
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021020static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
21021 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
21022 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
21023 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
21024
21025static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
21026 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21027 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
21028 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
21029 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
21030
21031static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
21032 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21033 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
21034 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
21035 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
21036
21037static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
21038 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
21039 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21040 spkr_prot_put_vi_lch_port);
21041
21042static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
21043 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
21044 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21045 spkr_prot_put_vi_rch_port);
21046
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021047static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
21048 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
21049 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21050 spkr_prot_put_vi_lch_port);
21051
21052static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
21053 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
21054 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21055 spkr_prot_put_vi_rch_port);
21056
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021057static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
21058 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
21059 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
21060 spkr_prot_put_vi_lch_port);
21061
21062static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
21063 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
21064 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
21065 spkr_prot_put_vi_lch_port);
21066
21067static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
21068 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
21069 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
21070 spkr_prot_put_vi_rch_port);
21071
21072static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
21073 /* Frontend AIF */
21074 /* Widget name equals to Front-End DAI name<Need confirmation>,
21075 * Stream name must contains substring of front-end dai name
21076 */
21077 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
21078 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
21079 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
21080 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
21081 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
21082 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
21083 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
21084 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
21085 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
21086 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
21087 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
21088 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
21089 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
21090 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
21091 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
21092 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
21093 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021094 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021095 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021096 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
21097 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
21098 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
21099 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
21100 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
21101 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
21102 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
21103 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
21104 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053021105 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053021106 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021107 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
21108 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
21109 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
21110 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021111 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021112 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080021113 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
21114 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021115 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
21116 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
21117 "VoiceMMode1 Playback", 0, 0, 0, 0),
21118 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
21119 "VoiceMMode1 Capture", 0, 0, 0, 0),
21120 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
21121 "VoiceMMode2 Playback", 0, 0, 0, 0),
21122 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
21123 "VoiceMMode2 Capture", 0, 0, 0, 0),
21124 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
21125 0, 0, 0, 0),
21126 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
21127 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021128 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
21129 0, 0, 0, 0),
21130 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
21131 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021132 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
21133 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021134 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
21135 0, 0, 0, 0),
21136 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
21137 0, 0, 0, 0),
21138 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
21139 0, 0, 0, 0),
21140 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
21141 0, 0, 0, 0),
21142 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
21143 0, 0, 0, 0),
21144 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
21145 0, 0, 0, 0),
21146 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
21147 0, 0, 0, 0),
21148 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
21149 0, 0, 0, 0),
21150 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
21151 0, 0, 0, 0),
21152 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
21153 0, 0, 0, 0),
21154 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
21155 0, 0, 0, 0),
21156 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
21157 0, 0, 0, 0),
21158 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
21159 0, 0, 0, 0),
21160 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
21161 0, 0, 0, 0),
21162 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
21163 0, 0, 0, 0),
21164 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
21165 0, 0, 0, 0),
21166 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
21167 0, 0, 0, 0),
21168 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
21169 0, 0, 0, 0),
21170 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
21171 0, 0, 0, 0),
21172 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
21173 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
21174 0, 0, 0, 0),
21175 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
21176 "INT0 MI2S_RX Hostless Playback",
21177 0, 0, 0, 0),
21178 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
21179 "INT4 MI2S_RX Hostless Playback",
21180 0, 0, 0, 0),
21181 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
21182 "Primary MI2S_RX Hostless Playback",
21183 0, 0, 0, 0),
21184 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
21185 "Secondary MI2S_RX Hostless Playback",
21186 0, 0, 0, 0),
21187 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
21188 "Tertiary MI2S_RX Hostless Playback",
21189 0, 0, 0, 0),
21190 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
21191 "Quaternary MI2S_RX Hostless Playback",
21192 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021193 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
21194 "Quinary MI2S_RX Hostless Playback",
21195 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021196 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
21197 "Senary MI2S_RX Hostless Playback",
21198 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021199
21200 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
21201 0, 0, 0, 0),
21202 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
21203 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021204 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
21205 0, 0, 0, 0),
21206 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
21207 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021208 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
21209 0, 0, 0, 0),
21210 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
21211 "INT3 MI2S_TX Hostless Capture",
21212 0, 0, 0, 0),
21213 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
21214 "Tertiary MI2S_TX Hostless Capture",
21215 0, 0, 0, 0),
21216 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
21217 "Secondary MI2S_TX Hostless Capture",
21218 0, 0, 0, 0),
21219 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
21220 "Primary MI2S_TX Hostless Capture",
21221 0, 0, 0, 0),
21222 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
21223 0, 0, 0, 0),
21224 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
21225 0, 0, 0, 0),
21226 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
21227 "Quaternary MI2S_TX Hostless Capture",
21228 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021229 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
21230 "Quinary MI2S_TX Hostless Capture",
21231 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021232 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
21233 "Senary MI2S_TX Hostless Capture",
21234 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021235
21236 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
21237 "Primary TDM0 Hostless Playback",
21238 0, 0, 0, 0),
21239 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
21240 "Primary TDM0 Hostless Capture",
21241 0, 0, 0, 0),
21242 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
21243 "Primary TDM1 Hostless Playback",
21244 0, 0, 0, 0),
21245 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
21246 "Primary TDM1 Hostless Capture",
21247 0, 0, 0, 0),
21248 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
21249 "Primary TDM2 Hostless Playback",
21250 0, 0, 0, 0),
21251 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
21252 "Primary TDM2 Hostless Capture",
21253 0, 0, 0, 0),
21254 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
21255 "Primary TDM3 Hostless Playback",
21256 0, 0, 0, 0),
21257 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
21258 "Primary TDM3 Hostless Capture",
21259 0, 0, 0, 0),
21260 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
21261 "Primary TDM4 Hostless Playback",
21262 0, 0, 0, 0),
21263 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
21264 "Primary TDM4 Hostless Capture",
21265 0, 0, 0, 0),
21266 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
21267 "Primary TDM5 Hostless Playback",
21268 0, 0, 0, 0),
21269 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
21270 "Primary TDM5 Hostless Capture",
21271 0, 0, 0, 0),
21272 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
21273 "Primary TDM6 Hostless Playback",
21274 0, 0, 0, 0),
21275 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
21276 "Primary TDM6 Hostless Capture",
21277 0, 0, 0, 0),
21278 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
21279 "Primary TDM7 Hostless Playback",
21280 0, 0, 0, 0),
21281 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
21282 "Primary TDM7 Hostless Capture",
21283 0, 0, 0, 0),
21284 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
21285 "Secondary TDM0 Hostless Playback",
21286 0, 0, 0, 0),
21287 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
21288 "Secondary TDM0 Hostless Capture",
21289 0, 0, 0, 0),
21290 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
21291 "Secondary TDM1 Hostless Playback",
21292 0, 0, 0, 0),
21293 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
21294 "Secondary TDM1 Hostless Capture",
21295 0, 0, 0, 0),
21296 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
21297 "Secondary TDM2 Hostless Playback",
21298 0, 0, 0, 0),
21299 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
21300 "Secondary TDM2 Hostless Capture",
21301 0, 0, 0, 0),
21302 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
21303 "Secondary TDM3 Hostless Playback",
21304 0, 0, 0, 0),
21305 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
21306 "Secondary TDM3 Hostless Capture",
21307 0, 0, 0, 0),
21308 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
21309 "Secondary TDM4 Hostless Playback",
21310 0, 0, 0, 0),
21311 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
21312 "Secondary TDM4 Hostless Capture",
21313 0, 0, 0, 0),
21314 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
21315 "Secondary TDM5 Hostless Playback",
21316 0, 0, 0, 0),
21317 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
21318 "Secondary TDM5 Hostless Capture",
21319 0, 0, 0, 0),
21320 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
21321 "Secondary TDM6 Hostless Playback",
21322 0, 0, 0, 0),
21323 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
21324 "Secondary TDM6 Hostless Capture",
21325 0, 0, 0, 0),
21326 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
21327 "Secondary TDM7 Hostless Playback",
21328 0, 0, 0, 0),
21329 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
21330 "Secondary TDM7 Hostless Capture",
21331 0, 0, 0, 0),
21332 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
21333 "Tertiary TDM0 Hostless Playback",
21334 0, 0, 0, 0),
21335 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
21336 "Tertiary TDM0 Hostless Capture",
21337 0, 0, 0, 0),
21338 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
21339 "Tertiary TDM1 Hostless Playback",
21340 0, 0, 0, 0),
21341 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
21342 "Tertiary TDM1 Hostless Capture",
21343 0, 0, 0, 0),
21344 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
21345 "Tertiary TDM2 Hostless Playback",
21346 0, 0, 0, 0),
21347 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
21348 "Tertiary TDM2 Hostless Capture",
21349 0, 0, 0, 0),
21350 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
21351 "Tertiary TDM3 Hostless Playback",
21352 0, 0, 0, 0),
21353 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
21354 "Tertiary TDM3 Hostless Capture",
21355 0, 0, 0, 0),
21356 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
21357 "Tertiary TDM4 Hostless Playback",
21358 0, 0, 0, 0),
21359 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
21360 "Tertiary TDM4 Hostless Capture",
21361 0, 0, 0, 0),
21362 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
21363 "Tertiary TDM5 Hostless Playback",
21364 0, 0, 0, 0),
21365 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
21366 "Tertiary TDM5 Hostless Capture",
21367 0, 0, 0, 0),
21368 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
21369 "Tertiary TDM6 Hostless Playback",
21370 0, 0, 0, 0),
21371 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
21372 "Tertiary TDM6 Hostless Capture",
21373 0, 0, 0, 0),
21374 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
21375 "Tertiary TDM7 Hostless Playback",
21376 0, 0, 0, 0),
21377 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
21378 "Tertiary TDM7 Hostless Capture",
21379 0, 0, 0, 0),
21380 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
21381 "Quaternary TDM0 Hostless Playback",
21382 0, 0, 0, 0),
21383 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
21384 "Quaternary TDM0 Hostless Capture",
21385 0, 0, 0, 0),
21386 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
21387 "Quaternary TDM1 Hostless Playback",
21388 0, 0, 0, 0),
21389 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
21390 "Quaternary TDM1 Hostless Capture",
21391 0, 0, 0, 0),
21392 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
21393 "Quaternary TDM2 Hostless Playback",
21394 0, 0, 0, 0),
21395 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
21396 "Quaternary TDM2 Hostless Capture",
21397 0, 0, 0, 0),
21398 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
21399 "Quaternary TDM3 Hostless Playback",
21400 0, 0, 0, 0),
21401 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
21402 "Quaternary TDM3 Hostless Capture",
21403 0, 0, 0, 0),
21404 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
21405 "Quaternary TDM4 Hostless Playback",
21406 0, 0, 0, 0),
21407 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
21408 "Quaternary TDM4 Hostless Capture",
21409 0, 0, 0, 0),
21410 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
21411 "Quaternary TDM5 Hostless Playback",
21412 0, 0, 0, 0),
21413 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
21414 "Quaternary TDM5 Hostless Capture",
21415 0, 0, 0, 0),
21416 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
21417 "Quaternary TDM6 Hostless Playback",
21418 0, 0, 0, 0),
21419 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
21420 "Quaternary TDM6 Hostless Capture",
21421 0, 0, 0, 0),
21422 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
21423 "Quaternary TDM7 Hostless Playback",
21424 0, 0, 0, 0),
21425 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
21426 "Quaternary TDM7 Hostless Capture",
21427 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021428 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
21429 "Quinary TDM0 Hostless Playback",
21430 0, 0, 0, 0),
21431 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
21432 "Quinary TDM0 Hostless Capture",
21433 0, 0, 0, 0),
21434 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
21435 "Quinary TDM1 Hostless Playback",
21436 0, 0, 0, 0),
21437 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
21438 "Quinary TDM1 Hostless Capture",
21439 0, 0, 0, 0),
21440 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
21441 "Quinary TDM2 Hostless Playback",
21442 0, 0, 0, 0),
21443 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
21444 "Quinary TDM2 Hostless Capture",
21445 0, 0, 0, 0),
21446 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
21447 "Quinary TDM3 Hostless Playback",
21448 0, 0, 0, 0),
21449 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
21450 "Quinary TDM3 Hostless Capture",
21451 0, 0, 0, 0),
21452 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
21453 "Quinary TDM4 Hostless Playback",
21454 0, 0, 0, 0),
21455 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
21456 "Quinary TDM4 Hostless Capture",
21457 0, 0, 0, 0),
21458 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
21459 "Quinary TDM5 Hostless Playback",
21460 0, 0, 0, 0),
21461 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
21462 "Quinary TDM5 Hostless Capture",
21463 0, 0, 0, 0),
21464 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
21465 "Quinary TDM6 Hostless Playback",
21466 0, 0, 0, 0),
21467 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
21468 "Quinary TDM6 Hostless Capture",
21469 0, 0, 0, 0),
21470 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
21471 "Quinary TDM7 Hostless Playback",
21472 0, 0, 0, 0),
21473 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
21474 "Quinary TDM7 Hostless Capture",
21475 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021476 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
21477 "Senary TDM0 Hostless Playback",
21478 0, 0, 0, 0),
21479 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
21480 "Senary TDM0 Hostless Capture",
21481 0, 0, 0, 0),
21482 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
21483 "Senary TDM1 Hostless Playback",
21484 0, 0, 0, 0),
21485 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
21486 "Senary TDM1 Hostless Capture",
21487 0, 0, 0, 0),
21488 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
21489 "Senary TDM2 Hostless Playback",
21490 0, 0, 0, 0),
21491 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
21492 "Senary TDM2 Hostless Capture",
21493 0, 0, 0, 0),
21494 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
21495 "Senary TDM3 Hostless Playback",
21496 0, 0, 0, 0),
21497 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
21498 "Senary TDM3 Hostless Capture",
21499 0, 0, 0, 0),
21500 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
21501 "Senary TDM4 Hostless Playback",
21502 0, 0, 0, 0),
21503 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
21504 "Senary TDM4 Hostless Capture",
21505 0, 0, 0, 0),
21506 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
21507 "Senary TDM5 Hostless Playback",
21508 0, 0, 0, 0),
21509 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
21510 "Senary TDM5 Hostless Capture",
21511 0, 0, 0, 0),
21512 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
21513 "Senary TDM6 Hostless Playback",
21514 0, 0, 0, 0),
21515 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
21516 "Senary TDM6 Hostless Capture",
21517 0, 0, 0, 0),
21518 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
21519 "Senary TDM7 Hostless Playback",
21520 0, 0, 0, 0),
21521 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
21522 "Senary TDM7 Hostless Capture",
21523 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021524
21525 /* LSM */
21526 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
21527 0, 0, 0, 0),
21528 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
21529 0, 0, 0, 0),
21530 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
21531 0, 0, 0, 0),
21532 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
21533 0, 0, 0, 0),
21534 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
21535 0, 0, 0, 0),
21536 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
21537 0, 0, 0, 0),
21538 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
21539 0, 0, 0, 0),
21540 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
21541 0, 0, 0, 0),
21542 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
21543 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
21544 /* Backend AIF */
21545 /* Stream name equals to backend dai link stream name */
21546 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
21547 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
21548 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020021549 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
21550 0, 0, 0, 0),
21551 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
21552 0, 0, 0, 0),
21553 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
21554 0, 0, 0, 0),
21555 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
21556 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021557 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
21558 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
21559 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
21560 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
21561 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
21562 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070021563 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
21564 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021565 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
21566 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
21567 0, 0, 0, 0),
21568 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
21569 0, 0, 0, 0),
21570 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
21571 0, 0, 0, 0),
21572 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
21573 "Secondary MI2S Playback SD1",
21574 0, 0, 0, 0),
21575 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
21576 0, 0, 0, 0),
21577 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
21578 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021579 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
21580 0, 0, 0, 0),
21581 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
21582 0, 0, 0, 0),
21583 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
21584 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021585 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
21586 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021587 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
21588 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021589 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
21590 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021591 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
21592 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021593 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
21594 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
21595 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
21596 0, 0, 0, 0),
21597 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
21598 0, 0, 0, 0),
21599 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
21600 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053021601 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
21602 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021603 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
21604 0, 0, 0, 0),
21605 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
21606 0, 0, 0, 0),
21607 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
21608 0, 0, 0, 0),
21609 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
21610 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
21611 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
21612 0, 0, 0, 0),
21613 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
21614 0, 0, 0, 0),
21615 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
21616 0, 0, 0, 0),
21617 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
21618 0, 0, 0, 0),
21619 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
21620 0, 0, 0, 0),
21621 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
21622 0, 0, 0, 0),
21623 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
21624 0, 0, 0, 0),
21625 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
21626 0, 0, 0, 0),
21627 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
21628 0, 0, 0, 0),
21629 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
21630 0, 0, 0, 0),
21631 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
21632 0, 0, 0, 0),
21633 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
21634 0, 0, 0, 0),
21635 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
21636 0, 0, 0, 0),
21637 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
21638 0, 0, 0, 0),
21639 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
21640 0, 0, 0, 0),
21641 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
21642 0, 0, 0, 0),
21643 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
21644 0, 0, 0, 0),
21645 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
21646 0, 0, 0, 0),
21647 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
21648 0, 0, 0, 0),
21649 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
21650 0, 0, 0, 0),
21651 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
21652 0, 0, 0, 0),
21653 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
21654 0, 0, 0, 0),
21655 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
21656 0, 0, 0, 0),
21657 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
21658 0, 0, 0, 0),
21659 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
21660 0, 0, 0, 0),
21661 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
21662 0, 0, 0, 0),
21663 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
21664 0, 0, 0, 0),
21665 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
21666 0, 0, 0, 0),
21667 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
21668 0, 0, 0, 0),
21669 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
21670 0, 0, 0, 0),
21671 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
21672 0, 0, 0, 0),
21673 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
21674 0, 0, 0, 0),
21675 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
21676 0, 0, 0, 0),
21677 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
21678 0, 0, 0, 0),
21679 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
21680 0, 0, 0, 0),
21681 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
21682 0, 0, 0, 0),
21683 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
21684 0, 0, 0, 0),
21685 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
21686 0, 0, 0, 0),
21687 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
21688 0, 0, 0, 0),
21689 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
21690 0, 0, 0, 0),
21691 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
21692 0, 0, 0, 0),
21693 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
21694 0, 0, 0, 0),
21695 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
21696 0, 0, 0, 0),
21697 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
21698 0, 0, 0, 0),
21699 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
21700 0, 0, 0, 0),
21701 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
21702 0, 0, 0, 0),
21703 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
21704 0, 0, 0, 0),
21705 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
21706 0, 0, 0, 0),
21707 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
21708 0, 0, 0, 0),
21709 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
21710 0, 0, 0, 0),
21711 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
21712 0, 0, 0, 0),
21713 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
21714 0, 0, 0, 0),
21715 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
21716 0, 0, 0, 0),
21717 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
21718 0, 0, 0, 0),
21719 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
21720 0, 0, 0, 0),
21721 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
21722 0, 0, 0, 0),
21723 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
21724 0, 0, 0, 0),
21725 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
21726 0, 0, 0, 0),
21727 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
21728 0, 0, 0, 0),
21729 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
21730 0, 0, 0, 0),
21731 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
21732 0, 0, 0, 0),
21733 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
21734 0, 0, 0, 0),
21735 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
21736 0, 0, 0, 0),
21737 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
21738 0, 0, 0, 0),
21739 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
21740 0, 0, 0, 0),
21741 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
21742 0, 0, 0, 0),
21743 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
21744 0, 0, 0, 0),
21745 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
21746 0, 0, 0, 0),
21747 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
21748 0, 0, 0, 0),
21749 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
21750 0, 0, 0, 0),
21751 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
21752 0, 0, 0, 0),
21753 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
21754 0, 0, 0, 0),
21755 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
21756 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021757 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
21758 0, 0, 0, 0),
21759 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
21760 0, 0, 0, 0),
21761 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
21762 0, 0, 0, 0),
21763 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
21764 0, 0, 0, 0),
21765 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
21766 0, 0, 0, 0),
21767 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
21768 0, 0, 0, 0),
21769 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
21770 0, 0, 0, 0),
21771 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
21772 0, 0, 0, 0),
21773 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
21774 0, 0, 0, 0),
21775 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
21776 0, 0, 0, 0),
21777 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
21778 0, 0, 0, 0),
21779 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
21780 0, 0, 0, 0),
21781 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
21782 0, 0, 0, 0),
21783 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
21784 0, 0, 0, 0),
21785 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
21786 0, 0, 0, 0),
21787 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
21788 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021789 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
21790 0, 0, 0, 0),
21791 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
21792 0, 0, 0, 0),
21793 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
21794 0, 0, 0, 0),
21795 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
21796 0, 0, 0, 0),
21797 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
21798 0, 0, 0, 0),
21799 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
21800 0, 0, 0, 0),
21801 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
21802 0, 0, 0, 0),
21803 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
21804 0, 0, 0, 0),
21805 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
21806 0, 0, 0, 0),
21807 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
21808 0, 0, 0, 0),
21809 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
21810 0, 0, 0, 0),
21811 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
21812 0, 0, 0, 0),
21813 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
21814 0, 0, 0, 0),
21815 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
21816 0, 0, 0, 0),
21817 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
21818 0, 0, 0, 0),
21819 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
21820 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021821 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
21822 0, 0, 0, 0),
21823 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
21824 0, 0, 0, 0),
21825 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
21826 0, 0, 0, 0),
21827 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
21828 0, 0, 0, 0),
21829 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
21830 0, 0, 0, 0),
21831 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
21832 0, 0, 0, 0),
21833 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
21834 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021835 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
21836 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021837 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
21838 0, 0, 0, 0),
21839 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
21840 0, 0, 0, 0),
21841 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
21842 0, 0, 0, 0),
21843 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
21844 0, 0, 0, 0),
21845 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
21846 0, 0, 0, 0),
21847 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
21848 0, 0, 0, 0),
21849 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
21850 0, 0, 0, 0),
21851 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
21852 0, 0, 0, 0),
21853 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
21854 0, 0, 0, 0),
21855 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
21856 0, 0, 0, 0),
21857 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
21858 0, 0, 0, 0),
21859 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
21860 0, 0, 0, 0),
21861 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
21862 0, 0, 0, 0),
21863 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
21864 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021865 /* incall */
21866 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
21867 0, 0, 0, 0),
21868 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
21869 0, 0, 0, 0),
21870 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
21871 0, 0, 0, 0),
21872 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
21873 0, 0, 0, 0),
21874 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
21875 0, 0, 0, 0),
21876 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
21877 0, 0, 0, 0),
21878 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
21879 0, 0, 0, 0),
21880 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
21881 0, 0, 0, 0),
21882 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
21883
21884 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
21885 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
21886 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
21887 0, 0, 0, 0),
21888 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
21889 0, 0, 0, 0),
21890 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
21891 0, 0, 0, 0),
21892 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
21893 0, 0, 0, 0),
21894 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
21895 0, 0, 0, 0),
21896 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
21897 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021898 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
21899 0, 0, 0, 0),
21900 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
21901 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021902 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
21903 0, 0, 0, 0),
21904 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
21905 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
21907 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
21908 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
21909 0, 0, 0, 0),
21910 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
21911 0, 0, 0, 0),
21912 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
21913 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
21914 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
21915 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
21916 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
21917 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
21918 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
21919 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
21920 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
21921 /* In- call recording */
21922 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
21923 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053021924 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
21925 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021926 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
21927 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
21928
21929 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
21930 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053021931 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
21932 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021933 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
21934 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
21935
21936 /* Switch Definitions */
21937 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
21938 &slim_fm_switch_mixer_controls),
21939 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
21940 &slim1_fm_switch_mixer_controls),
21941 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
21942 &slim3_fm_switch_mixer_controls),
21943 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
21944 &slim4_fm_switch_mixer_controls),
21945 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
21946 &slim6_fm_switch_mixer_controls),
21947 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21948 &pcm_rx_switch_mixer_controls),
21949 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21950 &int0_mi2s_rx_switch_mixer_controls),
21951 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21952 &int4_mi2s_rx_switch_mixer_controls),
21953 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21954 &pri_mi2s_rx_switch_mixer_controls),
21955 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21956 &sec_mi2s_rx_switch_mixer_controls),
21957 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21958 &tert_mi2s_rx_switch_mixer_controls),
21959 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21960 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053021961 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21962 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080021963 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
21964 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021965 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
21966 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021967 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
21968 &hfp_pri_aux_switch_mixer_controls),
21969 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
21970 &hfp_aux_switch_mixer_controls),
21971 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
21972 &hfp_int_switch_mixer_controls),
21973 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
21974 &hfp_slim7_switch_mixer_controls),
21975 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
21976 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021977 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
21978 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021979 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021980 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021981 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021982 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021983
21984 /* Mixer definitions */
21985 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21986 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
21987 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21988 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
21989 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21990 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
21991 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21992 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
21993 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21994 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
21995 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21996 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053021997 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
21998 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021999 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
22000 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
22001 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
22002 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022003 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
22004 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020022005 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22006 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
22007 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22008 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022009 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22010 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
22011 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22012 quaternary_mi2s_rx_mixer_controls,
22013 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
22014 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22015 tertiary_mi2s_rx_mixer_controls,
22016 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
22017 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22018 secondary_mi2s_rx_mixer_controls,
22019 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
22020 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22021 secondary_mi2s_rx2_mixer_controls,
22022 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
22023 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22024 primary_mi2s_rx_mixer_controls,
22025 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
22026 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22027 int0_mi2s_rx_mixer_controls,
22028 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
22029 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22030 int4_mi2s_rx_mixer_controls,
22031 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
22032 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22033 quinary_mi2s_rx_mixer_controls,
22034 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022035 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22036 senary_mi2s_rx_mixer_controls,
22037 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022038 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22039 pri_tdm_rx_0_mixer_controls,
22040 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
22041 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22042 pri_tdm_rx_1_mixer_controls,
22043 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
22044 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22045 pri_tdm_rx_2_mixer_controls,
22046 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
22047 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22048 pri_tdm_rx_3_mixer_controls,
22049 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
22050 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22051 pri_tdm_tx_0_mixer_controls,
22052 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
22053 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22054 sec_tdm_rx_0_mixer_controls,
22055 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
22056 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22057 sec_tdm_rx_1_mixer_controls,
22058 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
22059 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22060 sec_tdm_rx_2_mixer_controls,
22061 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
22062 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22063 sec_tdm_rx_3_mixer_controls,
22064 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
22065 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22066 sec_tdm_tx_0_mixer_controls,
22067 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
22068 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22069 tert_tdm_rx_0_mixer_controls,
22070 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
22071 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22072 tert_tdm_tx_0_mixer_controls,
22073 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
22074 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22075 tert_tdm_rx_1_mixer_controls,
22076 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
22077 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22078 tert_tdm_rx_2_mixer_controls,
22079 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
22080 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22081 tert_tdm_rx_3_mixer_controls,
22082 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
22083 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22084 tert_tdm_rx_4_mixer_controls,
22085 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
22086 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22087 quat_tdm_rx_0_mixer_controls,
22088 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
22089 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22090 quat_tdm_tx_0_mixer_controls,
22091 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
22092 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22093 quat_tdm_rx_1_mixer_controls,
22094 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
22095 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22096 quat_tdm_rx_2_mixer_controls,
22097 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
22098 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22099 quat_tdm_rx_3_mixer_controls,
22100 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022101 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22102 quin_tdm_rx_0_mixer_controls,
22103 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
22104 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22105 quin_tdm_tx_0_mixer_controls,
22106 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
22107 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22108 quin_tdm_rx_1_mixer_controls,
22109 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
22110 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22111 quin_tdm_rx_2_mixer_controls,
22112 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
22113 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22114 quin_tdm_rx_3_mixer_controls,
22115 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022116 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22117 sen_tdm_tx_0_mixer_controls,
22118 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
22119 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22120 sen_tdm_rx_0_mixer_controls,
22121 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
22122 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22123 sen_tdm_rx_1_mixer_controls,
22124 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
22125 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22126 sen_tdm_rx_2_mixer_controls,
22127 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
22128 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22129 sen_tdm_rx_3_mixer_controls,
22130 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022131 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22132 wsa_cdc_dma_rx_0_mixer_controls,
22133 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
22134 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22135 wsa_cdc_dma_rx_1_mixer_controls,
22136 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022137 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22138 rx_cdc_dma_rx_0_mixer_controls,
22139 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
22140 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22141 rx_cdc_dma_rx_1_mixer_controls,
22142 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
22143 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22144 rx_cdc_dma_rx_2_mixer_controls,
22145 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
22146 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22147 rx_cdc_dma_rx_3_mixer_controls,
22148 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
22149 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22150 rx_cdc_dma_rx_4_mixer_controls,
22151 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
22152 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
22153 rx_cdc_dma_rx_5_mixer_controls,
22154 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
22155 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
22156 rx_cdc_dma_rx_6_mixer_controls,
22157 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
22158 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
22159 rx_cdc_dma_rx_7_mixer_controls,
22160 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022161 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
22162 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
22163 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
22164 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
22165 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
22166 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
22167 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
22168 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
22169 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
22170 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
22171 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
22172 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
22173 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
22174 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
22175 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
22176 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022177 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
22178 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022179 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
22180 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022181 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
22182 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
22183 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
22184 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
22185 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
22186 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
22187 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
22188 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022189 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
22190 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053022191 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
22192 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022193 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
22194 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
22195 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
22196 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022197 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22198 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
22199 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22200 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
22201 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22202 tert_auxpcm_rx_mixer_controls,
22203 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
22204 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22205 quat_auxpcm_rx_mixer_controls,
22206 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022207 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22208 quin_auxpcm_rx_mixer_controls,
22209 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022210 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22211 sen_auxpcm_rx_mixer_controls,
22212 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022213 /* incall */
22214 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
22215 incall_music_delivery_mixer_controls,
22216 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
22217 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22218 incall_music2_delivery_mixer_controls,
22219 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
22220 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22221 slimbus_4_rx_mixer_controls,
22222 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
22223 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22224 slimbus_6_rx_mixer_controls,
22225 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
22226 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22227 usb_audio_rx_mixer_controls,
22228 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
22229 /* Voice Mixer */
22230 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
22231 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
22232 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
22233 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
22234 SND_SOC_NOPM, 0, 0,
22235 sec_i2s_rx_voice_mixer_controls,
22236 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
22237 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
22238 SND_SOC_NOPM, 0, 0,
22239 sec_mi2s_rx_voice_mixer_controls,
22240 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
22241 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
22242 SND_SOC_NOPM, 0, 0,
22243 slimbus_rx_voice_mixer_controls,
22244 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
22245 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
22246 SND_SOC_NOPM, 0, 0,
22247 bt_sco_rx_voice_mixer_controls,
22248 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
22249 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
22250 SND_SOC_NOPM, 0, 0,
22251 afe_pcm_rx_voice_mixer_controls,
22252 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
22253 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
22254 SND_SOC_NOPM, 0, 0,
22255 aux_pcm_rx_voice_mixer_controls,
22256 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
22257 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
22258 SND_SOC_NOPM, 0, 0,
22259 sec_aux_pcm_rx_voice_mixer_controls,
22260 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
22261 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
22262 SND_SOC_NOPM, 0, 0,
22263 tert_aux_pcm_rx_voice_mixer_controls,
22264 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
22265 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
22266 SND_SOC_NOPM, 0, 0,
22267 quat_aux_pcm_rx_voice_mixer_controls,
22268 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022269 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
22270 SND_SOC_NOPM, 0, 0,
22271 quin_aux_pcm_rx_voice_mixer_controls,
22272 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022273 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
22274 SND_SOC_NOPM, 0, 0,
22275 sen_aux_pcm_rx_voice_mixer_controls,
22276 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022277 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
22278 SND_SOC_NOPM, 0, 0,
22279 hdmi_rx_voice_mixer_controls,
22280 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
22281 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
22282 SND_SOC_NOPM, 0, 0,
22283 mi2s_rx_voice_mixer_controls,
22284 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
22285 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
22286 SND_SOC_NOPM, 0, 0,
22287 pri_mi2s_rx_voice_mixer_controls,
22288 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
22289 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
22290 SND_SOC_NOPM, 0, 0,
22291 int0_mi2s_rx_voice_mixer_controls,
22292 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
22293 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
22294 SND_SOC_NOPM, 0, 0,
22295 int4_mi2s_rx_voice_mixer_controls,
22296 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
22297 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
22298 SND_SOC_NOPM, 0, 0,
22299 tert_mi2s_rx_voice_mixer_controls,
22300 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
22301 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
22302 SND_SOC_NOPM, 0, 0,
22303 quat_mi2s_rx_voice_mixer_controls,
22304 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
22305 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
22306 SND_SOC_NOPM, 0, 0,
22307 quin_mi2s_rx_voice_mixer_controls,
22308 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022309 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
22310 SND_SOC_NOPM, 0, 0,
22311 pri_tdm_rx_0_voice_mixer_controls,
22312 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
22313 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
22314 SND_SOC_NOPM, 0, 0,
22315 pri_tdm_rx_1_voice_mixer_controls,
22316 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
22317 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
22318 SND_SOC_NOPM, 0, 0,
22319 pri_tdm_rx_2_voice_mixer_controls,
22320 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
22321 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
22322 SND_SOC_NOPM, 0, 0,
22323 pri_tdm_rx_3_voice_mixer_controls,
22324 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022325 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
22326 SND_SOC_NOPM, 0, 0,
22327 sen_mi2s_rx_voice_mixer_controls,
22328 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022329 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
22330 SND_SOC_NOPM, 0, 0,
22331 quat_tdm_rx_2_voice_mixer_controls,
22332 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022333 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
22334 SND_SOC_NOPM, 0, 0,
22335 wsa_cdc_dma_rx_0_voice_mixer_controls,
22336 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
22337 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
22338 SND_SOC_NOPM, 0, 0,
22339 rx_cdc_dma_rx_0_voice_mixer_controls,
22340 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022341 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
22342 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
22343 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022344 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
22345 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
22346 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
22347 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
22348 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
22349 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
22350 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22351 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
22352 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22353 int_bt_a2dp_rx_mixer_controls,
22354 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
22355 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22356 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
22357 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22358 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
22359 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22360 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
22361 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22362 tx_voice2_stub_mixer_controls,
22363 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
22364 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
22365 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
22366 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
22367 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
22368 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
22369 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
22370 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22371 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
22372 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
22373 SND_SOC_NOPM, 0, 0,
22374 slimbus_6_rx_voice_mixer_controls,
22375 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
22376 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22377 slimbus_7_rx_voice_mixer_controls,
22378 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
22379 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
22380 slimbus_8_rx_voice_mixer_controls,
22381 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
22382 /* port mixer */
22383 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
22384 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
22385 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
22386 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
22387 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
22388 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
22389 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
22390 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
22391 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
22392 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
22393 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
22394 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
22395 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
22396 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
22397 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022398 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
22399 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
22400 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022401 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
22402 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
22403 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022404 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22405 sbus_1_rx_port_mixer_controls,
22406 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
22407 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22408 bt_sco_rx_port_mixer_controls,
22409 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
22410 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
22411 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
22412 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
22413 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
22414 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
22415 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
22416 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
22417 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
22418 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070022419 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070022420 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
22421 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022422 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
22423 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
22424 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
22425 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
22426 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
22427 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
22428 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
22429 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
22430 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
22431 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22432 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
22433 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22434 primary_mi2s_rx_port_mixer_controls,
22435 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
22436 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22437 sec_mi2s_rx_port_mixer_controls,
22438 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
22439 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22440 tert_mi2s_rx_port_mixer_controls,
22441 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
22442 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22443 quat_mi2s_rx_port_mixer_controls,
22444 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022445 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22446 quin_mi2s_rx_port_mixer_controls,
22447 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022448 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22449 sen_mi2s_rx_port_mixer_controls,
22450 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022451 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22452 pri_tdm_rx_0_port_mixer_controls,
22453 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
22454 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22455 pri_tdm_rx_1_port_mixer_controls,
22456 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
22457 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22458 pri_tdm_rx_2_port_mixer_controls,
22459 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
22460 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22461 pri_tdm_rx_3_port_mixer_controls,
22462 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
22463 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22464 sec_tdm_rx_0_port_mixer_controls,
22465 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
22466 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22467 sec_tdm_rx_1_port_mixer_controls,
22468 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
22469 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22470 sec_tdm_rx_2_port_mixer_controls,
22471 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
22472 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22473 sec_tdm_rx_3_port_mixer_controls,
22474 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070022475 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
22476 sec_tdm_rx_7_port_mixer_controls,
22477 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022478 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22479 tert_tdm_rx_0_port_mixer_controls,
22480 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
22481 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22482 tert_tdm_rx_1_port_mixer_controls,
22483 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
22484 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22485 tert_tdm_rx_2_port_mixer_controls,
22486 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
22487 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22488 tert_tdm_rx_3_port_mixer_controls,
22489 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
22490 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22491 quat_tdm_rx_0_port_mixer_controls,
22492 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
22493 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22494 quat_tdm_rx_1_port_mixer_controls,
22495 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
22496 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22497 quat_tdm_rx_2_port_mixer_controls,
22498 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
22499 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22500 quat_tdm_rx_3_port_mixer_controls,
22501 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050022502 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
22503 quat_tdm_rx_7_port_mixer_controls,
22504 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022505 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22506 quin_tdm_rx_0_port_mixer_controls,
22507 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
22508 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22509 quin_tdm_rx_1_port_mixer_controls,
22510 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
22511 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22512 quin_tdm_rx_2_port_mixer_controls,
22513 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
22514 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22515 quin_tdm_rx_3_port_mixer_controls,
22516 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080022517 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
22518 quin_tdm_rx_7_port_mixer_controls,
22519 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022520 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22521 sen_tdm_rx_0_port_mixer_controls,
22522 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
22523 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
22524 sen_tdm_rx_1_port_mixer_controls,
22525 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
22526 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
22527 sen_tdm_rx_2_port_mixer_controls,
22528 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
22529 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
22530 sen_tdm_rx_3_port_mixer_controls,
22531 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022532 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22533 int0_mi2s_rx_port_mixer_controls,
22534 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
22535 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
22536 int4_mi2s_rx_port_mixer_controls,
22537 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022538 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22539 wsa_cdc_dma_rx_0_port_mixer_controls,
22540 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
22541 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
22542 rx_cdc_dma_rx_0_port_mixer_controls,
22543 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022544 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
22545 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
22546 ARRAY_SIZE(tx_qchat_mixer_controls)),
22547 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
22548 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
22549 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
22550 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
22551 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
22552 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022553 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
22554 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
22555 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022556 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
22557 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
22558 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022559 /* lsm mixer definitions */
22560 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
22561 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
22562 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
22563 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
22564 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
22565 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
22566 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
22567 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
22568 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
22569 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
22570 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
22571 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
22572 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
22573 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
22574 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
22575 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
22576 /* Virtual Pins to force backends ON atm */
22577 SND_SOC_DAPM_OUTPUT("BE_OUT"),
22578 SND_SOC_DAPM_INPUT("BE_IN"),
22579
22580 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
22581 &slim0_rx_vi_fb_lch_mux),
22582 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
22583 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022584 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
22585 &wsa_rx_0_vi_fb_lch_mux),
22586 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
22587 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022588 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
22589 &mi2s_rx_vi_fb_mux),
22590 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
22591 &int4_mi2s_rx_vi_fb_mono_ch_mux),
22592 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
22593 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
22594
22595 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
22596 &voc_ext_ec_mux),
22597 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
22598 &ext_ec_ref_mux_ul1),
22599 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
22600 &ext_ec_ref_mux_ul2),
22601 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
22602 &ext_ec_ref_mux_ul3),
22603 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
22604 &ext_ec_ref_mux_ul4),
22605 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
22606 &ext_ec_ref_mux_ul5),
22607 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
22608 &ext_ec_ref_mux_ul6),
22609 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
22610 &ext_ec_ref_mux_ul8),
22611 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
22612 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022613 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
22614 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022615 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
22616 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022617 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
22618 &ext_ec_ref_mux_ul17),
22619 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
22620 &ext_ec_ref_mux_ul18),
22621 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
22622 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080022623 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
22624 &ext_ec_ref_mux_ul28),
22625 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
22626 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022627};
22628
22629static const struct snd_soc_dapm_route intercon[] = {
22630 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22631 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22632 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22633 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22634 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22635 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22636 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22637 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22638 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22639 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22640 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22641 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22642 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22643 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22644 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22645 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022646 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022647 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
22648
22649 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22650 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22651 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22652 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22653 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22654 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22655 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22656 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22657 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22658 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22659 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22660 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22661 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22662 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22663 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22664 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022665 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022666 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
22667
22668 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22669 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22670 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22671 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22672 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22673 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22674 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22675 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22676 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22677 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22678 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22679 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22680 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22681 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22682 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22683 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022684 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022685 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
22686
22687 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22688 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22689 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22690 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22691 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22692 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22693 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22694 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22695 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22696 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22697 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22698 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22699 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22700 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22701 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22702 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022703 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022704 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
22705
22706 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22707 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22708 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22709 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22710 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22711 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22712 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22713 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22714 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22715 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22716 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22717 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22718 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22719 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22720 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22721 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022722 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022723 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
22724
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022725 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
22726 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
22727 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
22728 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
22729 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
22730 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
22731 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
22732 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
22733 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
22734 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
22735 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
22736 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
22737 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
22738 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
22739 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
22740 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022741 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022742 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
22743
22744 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
22745 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
22746 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
22747 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
22748 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
22749 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
22750 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
22751 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
22752 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
22753 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
22754 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
22755 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
22756 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
22757 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
22758 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
22759 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022760 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022761 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
22762
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022763 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
22764 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
22765 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
22766 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
22767 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
22768 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
22769 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
22770 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
22771 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
22772 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
22773 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
22774 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
22775 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
22776 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
22777 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
22778 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022779 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022780 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
22781
22782 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
22783 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
22784 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
22785 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
22786 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
22787 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
22788 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
22789 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
22790 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
22791 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
22792 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
22793 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
22794 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
22795 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
22796 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
22797 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022798 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022799 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
22800
22801 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
22802 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
22803 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
22804 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
22805 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
22806 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
22807 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
22808 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
22809 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
22810 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
22811 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
22812 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
22813 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
22814 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
22815 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
22816 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022817 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022818 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
22819
22820 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
22821 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
22822 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
22823 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
22824 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
22825 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
22826 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
22827 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
22828 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
22829 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
22830 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
22831 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
22832 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
22833 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
22834 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
22835 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022836 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022837 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
22838
22839 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
22840 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
22841 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
22842 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
22843 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
22844 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
22845 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
22846 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
22847 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
22848 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
22849 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
22850 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
22851 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
22852 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
22853 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
22854 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022855 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022856 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
22857
22858 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
22859 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
22860 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
22861 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
22862 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
22863 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
22864 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
22865 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
22866 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
22867 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
22868 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
22869 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
22870 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
22871 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
22872 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
22873 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022874 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022875 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
22876
22877 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
22878 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
22879 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
22880 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
22881 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
22882 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
22883 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
22884 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
22885 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
22886 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
22887 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
22888 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
22889 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
22890 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
22891 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
22892 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022893 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022894 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
22895
22896 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
22897 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
22898 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
22899 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
22900 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
22901 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
22902 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
22903 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
22904 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
22905 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
22906 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
22907 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
22908 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
22909 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
22910 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
22911 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022912 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022913 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
22914
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022915 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
22916 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
22917 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
22918 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
22919 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
22920 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
22921 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
22922 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
22923 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
22924 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
22925 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
22926 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
22927 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
22928 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
22929 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
22930 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022931 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022932 {"HDMI", NULL, "HDMI Mixer"},
22933
22934 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
22935 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
22936 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
22937 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
22938 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
22939 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
22940 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
22941 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
22942 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
22943 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
22944 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
22945 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
22946 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
22947 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
22948 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
22949 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022950 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022951 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
22952
Karthikeyan Mani57550082018-05-03 18:43:58 -070022953 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
22954 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
22955 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
22956 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
22957 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
22958 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
22959 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
22960 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
22961 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
22962 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
22963 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
22964 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
22965 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
22966 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
22967 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
22968 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022969 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022970 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
22971
Ralf Herzc8701f72018-06-20 11:37:35 +020022972 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22973 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22974 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22975 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22976 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22977 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22978 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22979 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22980 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22981 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22982 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22983 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22984 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22985 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22986 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22987 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022988 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022989 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
22990
22991 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22992 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22993 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22994 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22995 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22996 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22997 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22998 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22999 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23000 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23001 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23002 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23003 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23004 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23005 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23006 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023007 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023008 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023009
23010 /* incall */
23011 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
23012 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
23013 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
23014 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
23015 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
23016 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23017 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23018 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23019 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23020 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
23021 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23022 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23023 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23024 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23025 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
23026
23027 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23028 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23029 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23030 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23031 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23032 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23033 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23034 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23035 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23036 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23037 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23038 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23039 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23040 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23041 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23042 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023043 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023044 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
23045
23046 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23047 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23048 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23049 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23050 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23051 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23052 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23053 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23054 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23055 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23056 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23057 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23058 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23059 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23060 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23061 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023062 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023063 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
23064
Surendar Karka3ef3d812018-09-28 18:52:35 +053023065 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23066 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23067 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23068 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23069 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23070 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23071 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23072 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23073 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23074 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23075 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23076 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23077 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23078 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23079 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23080 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23081 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
23082 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
23083
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023084 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23085 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23086 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23087 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23088 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23089 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23090 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23091 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23092 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23093 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23094 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23095 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23096 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23097 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23098 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23099 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023100 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023101 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
23102
23103 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23104 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23105 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23106 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23107 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23108 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23109 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
23110 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23111 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23112 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023113 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023114 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23115 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023116 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023117 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023118 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023119 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023120 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023121 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023122 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023123 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023124 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023125 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023126 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023127 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023128 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023129 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023130 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023131 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23132 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23133 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23134 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23135 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023136 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23137 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023138 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023139 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023140 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23141 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23142 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023143 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23144 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23145 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23146 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23147 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23148 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023149 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023150 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23151 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23152 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023153 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23154 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023155 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023156 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023157 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023158 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023159 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023160 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023161 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023162 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23163 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023164 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023165 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023166 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023167 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023168 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23169 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23170 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023171 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023172 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23173 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23174 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023175
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023176 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23177 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23178 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23179 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23180 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23181 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23182 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23183 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23184 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23185 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23186 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23187 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23188 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23189 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23190 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23191 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023192 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023193 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
23194
23195 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23196 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23197 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23198 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23199 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23200 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23201 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23202 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23203 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23204 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23205 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23206 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23207 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23208 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23209 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023210 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023211 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
23212
23213 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23214 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23215 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23216 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23217 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23218 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23219 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23220 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23221 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23222 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23223 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23224 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23225 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23226 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023227 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023228 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
23229
23230 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23231 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23232 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23233 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23234 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23235 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23236 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23237 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23238 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23239 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23240 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23241 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23242 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23243 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023244 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023245 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
23246
23247 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23248 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
23249
23250 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23251 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23252
23253 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23254 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23255 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23256 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23257 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23258 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23259 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23260 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23261 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23262 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23263 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23264 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23265 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23266 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23267 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023268 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023269 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
23270
23271 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23272 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23273 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23274 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23275 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23276 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23277 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23278 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23279 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23280 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23281 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23282 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23283 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23284 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23285 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23286 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
23287
23288 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23289 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23290 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23291 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23292 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23293 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23294 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23295 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23296 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23297 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23298 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23299 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23300 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23301 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23302 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23303 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
23304
23305 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23306 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23307 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23308 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23309 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23310 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23311 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23312 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23313 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23314 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23315 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23316 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23317 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23318 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23319 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23320 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23321 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23322 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
23323
Karthikeyan Manic3700752019-03-11 18:33:53 -070023324 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23325 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23326 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23327 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23328 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23329 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23330 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23331 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23332 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23333 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23334 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23335 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23336 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23337 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23338 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23339 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
23340
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023341 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23342 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23343 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23344 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23345 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23346 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23347 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23348 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23349 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23350 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23351 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23352 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23353 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23354 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23355 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23356 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023357 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023358 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
23359
23360 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23361 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23362 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23363 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23364 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23365 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23366 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23367 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23368 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23369 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23370 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23371 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23372 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23373 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23374 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23375 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023376 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023377 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
23378
23379 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23380 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23381 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23382 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23383 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23384 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23385 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23386 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23387 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23388 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23389 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23390 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23391 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23392 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23393 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23394 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023395 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023396 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
23397
23398 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23399 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23400 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23401 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23402 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23403 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23404 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23405 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23406 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23407 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23408 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23409 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23410 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23411 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23412 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23413 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023414 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023415 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
23416
23417 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23418 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23419 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23420 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23421 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23422 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23423 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23424 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23425 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23426 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23427 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23428 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23429 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23430 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23431 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23432 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23433 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
23434
23435 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23436 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23437 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23438 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23439 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23440 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23441 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23442 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23443 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23444 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23445 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23446 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23447 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23448 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23449 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23450 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023451 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023452 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
23453
23454 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23455 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23456 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23457 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23458 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23459 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23460 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23461 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23462 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23463 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23464 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23465 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23466 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23467 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23468 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23469 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023470 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023471 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
23472
23473 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23474 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23475 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23476 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23477 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23478 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23479 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23480 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23481 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23482 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23483 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23484 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23485 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23486 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23487 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23488 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023489 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023490 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
23491
23492 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23493 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23494 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23495 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23496 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23497 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23498 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23499 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23500 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23501 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23502 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23503 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23504 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23505 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23506 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23507 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023508 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023509 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
23510
23511 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23512 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23513 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23514 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23515 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23516 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23517 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23518 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23519 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23520 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23521 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23522 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23523 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23524 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23525 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23526 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23527 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
23528
23529 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23530 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23531 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23532 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23533 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23534 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23535 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23536 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23537 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23538 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23539 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23540 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23541 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23542 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23543 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23544 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023545 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023546 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
23547
23548 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23549 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23550 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23551 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23552 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23553 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23554 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23555 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23556 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23557 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23558 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23559 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23560 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23561 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23562 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23563 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23564 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
23565
23566 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23567 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23568 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23569 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23570 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23571 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23572 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23573 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23574 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23575 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23576 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23577 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23578 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23579 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23580 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23581 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023582 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023583 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
23584
23585 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23586 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23587 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23588 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23589 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23590 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23591 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23592 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23593 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23594 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23595 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23596 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23597 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23598 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23599 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23600 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023601 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023602 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
23603
23604 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23605 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23606 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23607 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23608 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23609 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23610 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23611 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23612 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23613 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23614 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23615 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23616 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23617 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23618 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23619 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023620 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023621 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
23622
23623 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
23624 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
23625 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
23626 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
23627 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
23628 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
23629 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
23630 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
23631 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
23632 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
23633 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
23634 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
23635 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
23636 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
23637 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
23638 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023639 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023640 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
23641
23642 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23643 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23644 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23645 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23646 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23647 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23648 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23649 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23650 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23651 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23652 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23653 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23654 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23655 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23656 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23657 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23658 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023659 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023660 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
23661
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23663 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23664 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23665 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23666 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23667 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23668 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23669 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23670 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23671 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23672 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23673 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23674 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23675 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23676 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23677 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23678 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
23679
23680 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23681 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23682 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23683 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23684 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23685 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23686 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23687 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23688 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23689 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23690 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23691 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23692 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23693 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23694 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23695 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23696 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023697 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023698 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
23699
23700 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23701 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23702 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23703 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23704 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23705 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23706 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23707 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23708 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23709 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23710 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23711 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23712 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23713 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23714 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23715 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23716 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023717 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023718 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
23719
23720 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23721 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23722 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23723 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23724 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23725 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23726 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23727 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23728 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23729 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23730 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23731 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23732 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23733 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23734 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23735 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23736 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023737 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023738 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
23739
Rohit Kumara5077932017-09-10 22:05:05 +053023740 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23741 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23742 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23743 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23744 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23745 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23746 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23747 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23748 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23749 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23750 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23751 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23752 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23753 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23754 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23755 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23756 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023757 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023758 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
23759
23760 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23761 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23762 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23763 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23764 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23765 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23766 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23767 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23768 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23769 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23770 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23771 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23772 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23773 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23774 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23775 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23776 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
23777
23778 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23779 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23780 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23781 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23782 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23783 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23784 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23785 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23786 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23787 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23788 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23789 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23790 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23791 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23792 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23793 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23794 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023795 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023796 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
23797
23798 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23799 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23800 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23801 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23802 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23803 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23804 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23805 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23806 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23807 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23808 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23809 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23810 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23811 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23812 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23813 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23814 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023815 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023816 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
23817
23818 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23819 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23820 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23821 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23822 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23823 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23824 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23825 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23826 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23827 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23828 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23829 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23830 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23831 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23832 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23833 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23834 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070023835 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053023836 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
23837
Karthikeyan Manic3700752019-03-11 18:33:53 -070023838 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23839 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23840 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23841 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23842 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23843 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23844 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23845 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23846 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23847 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23848 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23849 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23850 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23851 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23852 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23853 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23854 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
23855 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
23856 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
23857
23858 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23859 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23860 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23861 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23862 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23863 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23864 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23865 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23866 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23867 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23868 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23869 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23870 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23871 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23872 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23873 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
23874 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
23875
23876 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23877 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23878 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23879 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23880 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23881 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23882 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23883 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23884 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23885 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23886 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23887 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23888 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23889 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23890 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23891 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
23892 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
23893 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
23894 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
23895
23896 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23897 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23898 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23899 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23900 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23901 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23902 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23903 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23904 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23905 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23906 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23907 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23908 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23909 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23910 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23911 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
23912 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
23913 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
23914 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
23915
23916 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23917 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23918 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23919 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23920 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23921 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23922 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23923 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23924 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23925 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23926 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23927 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23928 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23929 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23930 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23931 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
23932 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
23933 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
23934 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
23935
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023936 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
23937 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
23938 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
23939 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
23940 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023941 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023942 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023943 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23944 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23945 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23946 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23947 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070023948 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
23949 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023950 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23951 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23952 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23953 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23954 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23955 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23956 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023957 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023958 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23959 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
23960 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023961 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023962 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23963 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
23964 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023965 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023966 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
23967 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023968 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23969 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
23970 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023971 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023972 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23973 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
23974 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023975 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023976 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023977 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23978 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
23979 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070023980 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
23981 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
23982 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023983 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23984 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23985 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23986 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23987 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23988 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23989 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23990 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023991 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023992 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23993 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23994 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023995 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023996 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23997 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
23998 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023999 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024000 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024001 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24002 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24003 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024004 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024005 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024006 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24007 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24008 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24009 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24010 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024011 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24012 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24013 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24014 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024015 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024016 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024017
24018 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24019 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24020 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24021 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24022 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24023 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24024 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24025 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24026 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24027 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24028 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24029 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24030 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24031 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24032 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24033 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024034 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024035 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24036 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24037 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24038 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024039 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24040 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24041 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24042 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024043 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24044 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24045 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24046 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24047 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024048 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024049 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24050 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24051 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24052 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24053 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24054 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024055 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24056 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024057
24058 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24059 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24060 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24061 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24062 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24063 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24064 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24065 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24066 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24067 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24068 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24069 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24070 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24071 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24072 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24073 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024074 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024075 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24076 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24077 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24078 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024079 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24080 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24081 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24082 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024083 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24084 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24085 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24086 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24087 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024088 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024089 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24090 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24091 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24092 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24093 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24094 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024095 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24096 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024097
24098 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24099 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24100 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24101 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24102 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24103 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24104 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24105 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24106 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24107 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24108 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24109 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24110 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24111 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24112 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24113 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024114 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024115 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24116 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24117 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24118 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024119 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24120 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24121 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24122 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024123 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24124 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24125 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24126 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24127 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024128 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024129 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24130 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24131 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24132 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24133 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24134 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024135 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24136 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024137
24138 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24139 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24140 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24141 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24142 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24143 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24144 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24145 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24146 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24147 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24148 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24149 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24150 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24151 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24152 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24153 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024154 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024155 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24156 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24157 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24158 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024159 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24160 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24161 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24162 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024163 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24164 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24165 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24166 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24167 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024168 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024169 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24170 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24171 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24172 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24173 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24174 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024175 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24176 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024177
24178 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24179 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24180 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24181 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24182 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24183 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24184 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24185 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24186 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24187 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24188 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24189 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24190 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24191 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24192 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24193 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024194 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024195 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24196 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24197 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24198 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024199 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24200 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24201 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24202 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024203 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24204 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24205 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24206 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24207 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024208 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024209 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24210 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24211 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24212 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24213 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24214 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024215 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24216 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024217
24218 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24219 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24220 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24221 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24222 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24223 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24224 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24225 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24226 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24227 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24228 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24229 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24230 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24231 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24232 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24233 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024234 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024235 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24236 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24237 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24238 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024239 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24240 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24241 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24242 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024243 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24244 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24245 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24246 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24247 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024248 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024249 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24250 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24251 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24252 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24253 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24254 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024255 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24256 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024257
24258 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24259 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24260 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24261 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24262 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24263 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24264 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24265 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24266 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24267 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24268 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24269 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24270 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24271 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24272 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24273 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024274 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024275 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24276 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24277 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24278 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024279 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24280 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24281 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24282 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024283 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24284 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24285 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24286 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24287 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024288 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024289 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24290 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24291 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24292 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24293 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24294 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024295 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24296 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024297
Samyak Jain810e42a2019-01-07 17:53:34 +053024298 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024299 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24300 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24301 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24302 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24303 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24304 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24305 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24306 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053024307 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24308 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24309 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24310 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024311 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24312 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24313 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24314 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024315 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24316 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24317 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24318 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24319 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024320 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024321 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24322 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24323 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24324 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24325 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24326 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024327 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24328 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024329 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024330
Laxminath Kasam38070be2017-08-17 18:21:59 +053024331 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24332 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24333 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24334 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24335 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24336 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24337 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24338 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024339 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24340 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24341 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24342 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24343 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24344 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024345 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024346
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024347 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24348 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24349 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24350 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024351 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024352 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024353 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24354 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24355 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24356 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24357 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24358 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24359 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24360 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24361 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24362 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24363 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24364 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24365 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24366 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24367 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24368 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053024369 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24370 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24371 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24372 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024373 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24374 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24375 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24376 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024377 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24378 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24379 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24380 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24381 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024382 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024383 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24384 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24385 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24386 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24387 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24388 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024389 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24390 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024391 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024392
Derek Chen07c6d1c2018-07-05 10:39:25 -070024393 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24394 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24395 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24396 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24397 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24398 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24399 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24400 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24401 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24402 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24403 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24404 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24405 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24406 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24407 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24408 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24409 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24410 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
24411 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24412 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24413 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24414 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024415 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24416 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24417 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24418 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053024419 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24420 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24421 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24422 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24423 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024424 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053024425 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24426 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24427 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24428 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24429 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24430 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
24431 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24432 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024433 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024434
Surendar Karkac1cde372018-08-14 18:56:24 +053024435 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024436 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024437 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24438 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024439 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024440 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24441 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24442 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24443 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24444 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024445 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024446 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24447 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024448 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024450 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24451 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24452 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24453 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24454 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
24455 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024456 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024457
Asish Bhattacharya34504582017-08-08 12:55:01 +053024458 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24459 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24460 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24461 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24462 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24463 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24464 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24465 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24466 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24467 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24468 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24469 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24470 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24471 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24472 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24473 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
24474 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024475 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24476 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24477 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24478 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24479 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024480 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024481 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24482 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24483 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24484 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24485 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24486 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024487 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24488 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024489 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024490
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024491 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24492 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24493 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24494 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24495 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24496 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024497 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024498
24499 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24500 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24501 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24502 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24503 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24504 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024505 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024506
24507 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24508 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24509 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24510 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24511 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24512 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024513 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024514
24515 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24516 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24517 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24518 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24519 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24520 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024521 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024522
24523 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24524 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24525 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24526 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24527 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24528 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024529 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024530
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024531 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24532 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24533 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24534 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24535 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24536 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24537 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24538 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24539 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24540 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24541 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24542 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24543 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24544 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24545 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24546 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24547 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
24548 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
24549
24550 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24551 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24552 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24553 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24554 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24555 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24556 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24557 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24558 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24559 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24560 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24561 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24562 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24563 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24564 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24565 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24566 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
24567 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
24568
24569 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24570 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24571 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24572 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24573 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24574 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24575 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24576 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24577 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24578 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24579 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24580 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24581 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24582 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24583 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24584 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24585 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
24586
24587 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24588 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24589 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24590 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24591 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24592 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24593 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24594 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24595 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24596 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24597 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24598 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24599 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24600 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24601 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24602 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24603 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
24604
24605 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24606 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24607 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024608 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024609 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24610 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24611 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024612 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24613 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024614 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
24615 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024616 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024617 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24618 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024619 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024620 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24621 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24622 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024623 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24624 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024625 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24626 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24627 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24628
24629 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
24630 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
24631 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024632 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024633 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
24634 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
24635 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024636 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
24637 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024638 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
24639 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024640 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024641 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
24642 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24643 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
24644 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
24645 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
24646 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
24647 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
24648 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
24649 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024650 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024651 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024652 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
24653 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
24654 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
24655 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024656 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024657 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024658 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
24659 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024660
24661 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24662 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24663 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24664 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24665 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24666 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24667 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24668 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24669 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24670 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24671 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24672 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24673 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24674 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24675 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24676 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024677 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024678 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
24679
24680 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24681 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24682 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24683 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24684 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24685 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24686 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24687 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24688 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24689 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24690 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24691 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24692 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24693 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24694 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24695 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024696 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024697 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
24698
24699 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24700 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24701 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24702 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24703 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24704 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24705 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24706 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24707 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24708 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24709 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24710 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24711 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24712 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24713 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24714 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24715 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
24716
24717 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24718 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24719 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24720 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24721 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24722 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24723 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24724 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24725 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24726 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24727 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24728 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24729 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24730 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24731 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24732 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24733 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
24734
Rohit Kumara5077932017-09-10 22:05:05 +053024735 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24736 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24737 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24738 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24739 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24740 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24741 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24742 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24743 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24744 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24745 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24746 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24747 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24748 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24749 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24750 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24751 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
24752
Karthikeyan Manic3700752019-03-11 18:33:53 -070024753 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24754 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24755 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24756 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24757 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24758 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24759 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24760 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24761 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24762 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24763 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24764 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24765 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24766 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24767 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24768 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24769 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
24770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024771 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
24772 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24773 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24774 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24775 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24776 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
24777
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024778 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
24779 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24780 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24781 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
24782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024783 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024784 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24785 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024786 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24787 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24788 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24789 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24790 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
24791
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024792 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
24793 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024794 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24795 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24796 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24797 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
24798
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024799 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
24800 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024801 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24802 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24803 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24804 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
24805
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024806 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
24807 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024808 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24809 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24810 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24811 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
24812
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024813 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
24814 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024815 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24816 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24817 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24818 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
24819
Karthikeyan Mani57550082018-05-03 18:43:58 -070024820 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
24821 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24822 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
24823 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24824 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24825 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
24826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024827 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
24828 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24829 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24830 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24831 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024832 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
24833
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024834 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24835 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24836 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24837 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24838 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24839 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
24840
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024841 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24842 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024843 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24844 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24845 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24846 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
24847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024848 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24849 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024850 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24851 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24852 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24853 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
24854
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024855 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24856 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024857 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24858 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24859 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24860 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
24861
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024862 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24863 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024864 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24865 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24866 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24867 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
24868
Rohit Kumara5077932017-09-10 22:05:05 +053024869 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24870 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053024871 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24872 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24873 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24874 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
24875
Karthikeyan Manic3700752019-03-11 18:33:53 -070024876 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
24877 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24878 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24879 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24880 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24881 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
24882
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024883 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
24884 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24885 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24886 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24887 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24888 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
24889 {"HDMI", NULL, "HDMI_DL_HL"},
24890
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024891 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024892 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24893 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024894 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24895 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24896 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080024897 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024898 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
24899
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024900 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024901 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24902 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024903 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24904 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24905 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24906 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24907 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
24908
24909 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24910 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24911 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24912 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24913 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24914 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
24915
24916 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24917 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24918 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24919 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24920 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24921 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
24922
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024923 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024924 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24925 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024926 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24927 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24928 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24929 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24930 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
24931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024932 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024933 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24934 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024935 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24936 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24937 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24938 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
24939
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024940 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070024941 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24942 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024943 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24944 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24945 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24946 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
24947
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024948 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024949 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24950 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24951 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24952 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
24953 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24954 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24955 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24956 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
24957
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024958 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024959 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24960 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24961 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24962 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
24963 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24964 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24965 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24966 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
24967
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024968 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024969 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24970 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24971 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24972 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
24973 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24974 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24975 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24976 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
24977
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024978 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024979 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
24980 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
24981 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
24982 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
24983 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
24984 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24985 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24986 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
24987
Karthikeyan Manic3700752019-03-11 18:33:53 -070024988 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
24989 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
24990 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24991 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24992 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
24993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024994 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24995 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
24996
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024997 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
24998 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
24999 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
25000
25001 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25002 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25003 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
25004
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025005 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25006 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25007 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25008 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025009 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025010 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070025011 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025012 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025013 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
25014 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
25015
25016 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25017 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25018 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25019 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25020 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25021 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25022 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25023 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25024 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25025 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025026 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25027 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025028
25029 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25030 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25031 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25032 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25033
25034 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25035 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25036 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25037 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25038
25039 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25040 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25041 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25042 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25043
25044 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25045 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25046 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25047 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25048
25049 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25050 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25051 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25052 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25053
25054 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25055 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25056 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25057 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25058
25059 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25060 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25061 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25062 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25063
Laxminath Kasam38070be2017-08-17 18:21:59 +053025064 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25065 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25066 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25067 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25068 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25069 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25070 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25071 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25072 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25073 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025074 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25075 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070025076
25077 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25078 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25079 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25080 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25081
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025082 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25083 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25084 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25085 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25086
25087 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25088 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25089 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25090 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25091
25092 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25093 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25094 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25095 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25096
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025097 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25098 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25099 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25100 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25101
25102 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25103 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25104 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25105 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080025106
25107 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25108 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25109 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25110 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25111 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25112 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25113 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25114 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025116 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
25117 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
25118 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
25119 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
25120 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
25121 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
25122 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
25123 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025124 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025125 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025126 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
25127 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
25128 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025129 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
25130 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025131
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025132 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
25133 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
25134 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
25135 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
25136 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
25137 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
25138 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
25139 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
25140 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
25141 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
25142 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
25143 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
25144 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
25145 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
25146 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025147 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025148 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025149 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025150 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
25151 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
25152 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
25153 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
25154 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
25155 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025156 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
25157 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025158 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025159 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
25160
25161 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
25162 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
25163 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
25164 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
25165 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
25166 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
25167 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
25168 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
25169 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
25170 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
25171 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
25172 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
25173 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
25174 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
25175 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025176 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025177 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025178 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
25179 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
25180 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
25181 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
25182 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
25183 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025184 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
25185 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070025186 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025187 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
25188
25189 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
25190 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
25191 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
25192 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
25193 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
25194 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
25195 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
25196 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
25197 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
25198 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
25199 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
25200 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
25201 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
25202 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025203 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025204 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025205 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025206 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025207 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
25208
25209 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
25210 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
25211 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
25212 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
25213 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
25214 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
25215 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
25216 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
25217 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
25218 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080025219 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
25220 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025221 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
25222 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
25223 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
25224 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
25225 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053025226 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25227 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
25228 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025229 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25230 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
25231 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025232 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25233 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25234 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25235 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25236 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25237 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25238 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25239 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025240 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25241 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025242 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025243 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025244 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025245 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
25246
25247 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25248 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25249 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25250 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25251 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25252 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25253 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25254 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025255 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25256 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025257 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025258 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025259 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025260 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
25261
25262
25263 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25264 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25265 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25266 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25267 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25268 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25269 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25270 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025271 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25272 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025273 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025274 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025275 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025276 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
25277
25278
25279 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25280 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25281 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25282 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25283 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25284 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25285 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25286 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025287 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25288 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025289 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025290 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025291 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025292 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
25293
25294 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25295 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25296 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25297 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25298 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25299 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25300 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25301 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025302 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25303 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025304 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025305 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025306 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025307 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
25308
25309 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25310 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25311 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25312 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25313 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25314 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025315 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25316 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025317 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025318 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025319 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025320 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
25321
25322 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25323 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25324 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25325 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25326 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25327 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025328 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25329 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025330 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025331 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025332 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025333 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
25334
25335 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25336 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25337 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25338 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25339 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25340 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053025341 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25342 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025343 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053025344 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053025345 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025346 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
25347
25348
25349 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
25350 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
25351 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
25352 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
25353 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
25354 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
25355 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
25356 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
25357 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
25358 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
25359 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025360 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025361 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025362 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
25363 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
25364 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
25365 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
25366 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
25367 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
25368
25369 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
25370 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
25371 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
25372 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
25373 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
25374 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
25375 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
25376 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
25377 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
25378 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
25379 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
25380 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080025381 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
25382 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080025383 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025384 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080025385 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025386 {"MI2S_RX", NULL, "MI2S_DL_HL"},
25387 {"MI2S_UL_HL", NULL, "MI2S_TX"},
25388 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
25389 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
25390
25391 /* connect to INT4_MI2S_DL_HL since same pcm_id */
25392 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
25393 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
25394 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
25395 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
25396 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
25397 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
25398 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
25399 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
25400 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
25401 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
25402
25403 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
25404 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053025405 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
25406 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025407 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
25408 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025409 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
25410 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
25411 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
25412 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
25413 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
25414 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
25415 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
25416 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
25417 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
25418 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
25419
25420 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
25421 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
25422 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
25423 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
25424 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
25425 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
25426 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
25427 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
25428 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
25429 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
25430 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
25431 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
25432 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
25433 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
25434 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
25435 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070025436 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025437 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
25438 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
25439 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
25440 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070025441 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025442 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
25443 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
25444 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
25445 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
25446 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
25447 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
25448 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
25449 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050025450 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025451 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
25452 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
25453 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
25454 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050025455 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053025456 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
25457 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
25458 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
25459 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080025460 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053025461 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
25462 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
25463 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
25464 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080025465 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025466 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
25467 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
25468 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
25469 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
25470 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
25471 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
25472 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
25473 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025474
25475 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25476 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25477 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25478 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25479 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25480 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25481 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25482 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25483 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25484 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25485 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25486 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25487 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25488 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25489 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25490 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025491 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25492 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25493 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25494 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025495 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25496 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25497 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25498 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025499 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
25500
25501 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25502 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25503 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25504 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25505 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25506 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25507 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25508 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25509 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25510 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25511 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25512 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25513 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25514 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25515 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25516 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025517 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25518 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25519 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25520 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025521 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25522 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25523 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25524 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025525 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
25526
25527 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25528 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25529 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25530 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25531 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25532 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25533 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25534 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25535 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25536 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25537 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25538 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25539 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25540 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25541 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25542 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025543 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25544 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25545 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25546 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025547 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25548 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25549 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25550 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025551 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
25552
25553 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25554 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25555 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25556 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25557 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25558 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25559 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25560 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25561 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25562 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25563 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25564 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25565 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25566 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25567 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25568 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025569 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25570 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25571 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25572 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025573 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25574 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25575 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25576 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025577 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
25578
25579 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25580 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25581 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25582 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25583 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25584 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25585 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25586 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25587 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25588 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25589 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25590 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25591 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25592 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25593 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25594 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025595 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25596 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25597 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25598 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025599 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25600 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25601 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25602 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025603 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
25604
25605 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25606 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25607 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25608 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25609 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25610 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25611 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25612 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25613 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25614 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25615 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25616 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25617 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25618 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25619 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25620 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025621 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25622 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25623 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25624 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025625 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25626 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25627 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25628 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025629 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
25630
25631 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25632 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25633 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25634 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25635 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25636 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25637 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25638 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25639 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25640 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25641 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25642 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25643 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25644 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25645 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25646 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025647 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25648 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25649 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25650 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025651 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25652 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25653 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25654 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025655 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
25656
25657 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25658 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25659 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25660 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25661 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25662 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25663 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25664 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25665 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25666 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25667 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25668 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25669 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25670 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25671 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25672 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025673 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25674 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25675 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25676 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025677 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25678 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25679 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25680 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025681 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
25682
Derek Chenfdcc0982018-10-02 15:14:03 -070025683 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
25684 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
25685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025686 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25687 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25688 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25689 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25690 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25691 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25692 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25693 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25694 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25695 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25696 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25697 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25698 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25699 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25700 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25701 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025702 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25703 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25704 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25705 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025706 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25707 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25708 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25709 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025710 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
25711
25712 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25713 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25714 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25715 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25716 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25717 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25718 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25719 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25720 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25721 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25722 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25723 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25724 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25725 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25726 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25727 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025728 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25729 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25730 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25731 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025732 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25733 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25734 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25735 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025736 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
25737
25738 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25739 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25740 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25741 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25742 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25743 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25744 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25745 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25746 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25747 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25748 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25749 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25750 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25751 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25752 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25753 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025754 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25755 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25756 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25757 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025758 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25759 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25760 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25761 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025762 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
25763
25764 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25765 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25766 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25767 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25768 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25769 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25770 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25771 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25772 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25773 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25774 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25775 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25776 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25777 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25778 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25779 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025780 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25781 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25782 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25783 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025784 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25785 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25786 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25787 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025788 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
25789
25790 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25791 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25792 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25793 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25794 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25795 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25796 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25797 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25798 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25799 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25800 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25801 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25802 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25803 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25804 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25805 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025806 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25807 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25808 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25809 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025810 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25811 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25812 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25813 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025814 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
25815
25816 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25817 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25818 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25819 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25820 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25821 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25822 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25823 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25824 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25825 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25826 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25827 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25828 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25829 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25830 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25831 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025832 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25833 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25834 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25835 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025836 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25837 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25838 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25839 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025840 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
25841
25842 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25843 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25844 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25845 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25846 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25847 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25848 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25849 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25850 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25851 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25852 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25853 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25854 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25855 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25856 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25857 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025858 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25859 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25860 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25861 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025862 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25863 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25864 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25865 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025866 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
25867
25868 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25869 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25870 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25871 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25872 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25873 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25874 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25875 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25876 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25877 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25878 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25879 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25880 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25881 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25882 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25883 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025884 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25885 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25886 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25887 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025888 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25889 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25890 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25891 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025892 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
25893
Derek Chenb9048cb2019-03-07 14:54:13 -050025894 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
25895 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
25896
Rohit Kumara5077932017-09-10 22:05:05 +053025897 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25898 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25899 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25900 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25901 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25902 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25903 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25904 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25905 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25906 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25907 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25908 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25909 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25910 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25911 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25912 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25913 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25914 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25915 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25916 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025917 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25918 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25919 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25920 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025921 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025922
25923 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25924 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25925 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25926 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25927 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25928 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25929 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25930 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25931 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25932 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25933 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25934 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25935 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25936 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25937 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25938 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25939 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25940 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25941 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25942 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025943 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25944 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25945 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25946 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025947 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025948
25949 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25950 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25951 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25952 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25953 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25954 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25955 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25956 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25957 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25958 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25959 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25960 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25961 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25962 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25963 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25964 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25965 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25966 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25967 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25968 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025969 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25970 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25971 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25972 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025973 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053025974
25975 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25976 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25977 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25978 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25979 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25980 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
25981 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25982 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25983 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25984 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25985 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25986 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25987 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25988 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25989 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25990 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25991 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25992 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25993 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25994 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025995 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25996 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25997 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25998 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053025999 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Han Lu7b6c5882019-06-09 16:03:21 +080026000 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
26001 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053026002
Karthikeyan Manic3700752019-03-11 18:33:53 -070026003 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26004 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26005 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26006 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26007 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26008 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26009 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26010 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26011 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26012 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26013 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26014 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26015 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26016 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26017 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26018 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26019 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26020 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26021 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26022 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26023 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
26024
26025 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26026 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26027 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26028 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26029 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26030 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26031 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26032 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26033 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26034 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26035 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26036 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26037 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26038 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26039 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26040 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26041 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26042 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26043 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26044 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26045 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
26046
26047 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26048 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26049 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26050 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26051 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26052 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26053 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26054 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26055 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26056 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26057 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26058 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26059 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26060 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26061 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26062 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26063 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26064 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26065 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26066 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26067 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
26068
26069 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26070 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26071 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26072 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26073 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26074 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26075 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26076 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26077 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26078 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26079 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26080 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26081 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26082 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26083 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26084 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26085 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26086 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26087 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26088 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26089 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
26090
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026091 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26092 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26093 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26094 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026095 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026096 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026097 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26098 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26099 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26100 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026101 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026102 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26103 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
26104
26105 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26106 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26107 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26108 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026109 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026110 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026111 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26112 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26113 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026114 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026115 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26116 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26117 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
26118
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026119 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26120 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080026121 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026122 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026123 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
26124
26125 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26126 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026127 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026128 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026130 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26131 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26132 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26133 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26134 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026135 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026136 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26137 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26138 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26139 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026140 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026141 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026142 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26143 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26144 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26145 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26146 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026147 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026148 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026149 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26150 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
26151 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26152 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26153 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
26154 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26155 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
26156 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
26157 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
26158 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
26159
26160
26161 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26162 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26163 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26164 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26165 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053026166 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026167 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026168 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
26169
26170 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26171 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26172 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026173 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026174 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
26175
26176 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26177 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26178 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26179 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
26180
26181 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26182 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26183 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26184 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
26185
Rohit Kumara5077932017-09-10 22:05:05 +053026186 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26187 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26188 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26189 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
26190
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026191 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26192 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26193 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26194 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26195 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26196 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26197 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26198 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026199 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026200 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026201 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
26202 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26203 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26204 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26205 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26206 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26207 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26208 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26209 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26210 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26211 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
26212
26213 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26214 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26215 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26216 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26217 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26218 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26219 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26220 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26221 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26222 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26223 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26224 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
26225
26226 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26227 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26228 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26229 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26230 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26231 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26232 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26233 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26234 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26235 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26236 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026237 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026238 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
26239
kunleizdf5a00a2017-11-27 15:27:36 +080026240 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26241 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026242 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080026243
26244 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26245 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026246 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080026247
26248 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26249 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026250 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
26251
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026252 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
26253 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026254 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26255 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26256 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26257 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
26258
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026259 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
26260 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026261 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26262 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26263 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26264 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
26265
26266 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26267 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26268 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26269 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
26270 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26271 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26272 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
26273 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
26274 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26275 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
26276 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
26277 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
26278 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
26279
26280 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26281 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26282 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26283 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26284 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026285 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026286 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26287 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26288 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26289 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26290 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26291 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26292 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26293 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
26294
26295 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26296 {"HDMI", NULL, "HDMI_RX Port Mixer"},
26297
26298 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26299 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
26300
Karthikeyan Mani57550082018-05-03 18:43:58 -070026301 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
26302 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
26303
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026304 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26305 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
26306
26307 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26308 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26309 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
26310
26311 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26312 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26313 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26314 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026315 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026316 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026317 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26318 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26319 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26320 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026321 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026322 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
26323
26324 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26325 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26326 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26327 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026328 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026329 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026330 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26331 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26332 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026333 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026334 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
26335
26336 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26337 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26338 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26339 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026340 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026341 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026342 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26343 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26344 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
26345
26346 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26347 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26348 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26349 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026350 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026351 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026352 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26353 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26354 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26355 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26356 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
26357
Rohit Kumara5077932017-09-10 22:05:05 +053026358 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26359 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26360 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26361 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26362 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026363 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026364 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26365 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26366 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
26367
Karthikeyan Manic3700752019-03-11 18:33:53 -070026368 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26369 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26370 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26371 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26372 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
26373 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26374 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26375 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
26376
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026377 /* Backend Enablement */
26378
26379 {"BE_OUT", NULL, "PRI_I2S_RX"},
26380 {"BE_OUT", NULL, "SEC_I2S_RX"},
26381 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
26382 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
26383 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
26384 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26385 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
26386 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
26387 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
26388 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
26389 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026390 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026391 {"BE_OUT", NULL, "USB_AUDIO_RX"},
26392 {"BE_OUT", NULL, "HDMI"},
26393 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070026394 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026395 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
26396 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026397 {"BE_OUT", NULL, "MI2S_RX"},
26398 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
26399 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026400 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026401 {"BE_OUT", NULL, "TERT_MI2S_RX"},
26402 {"BE_OUT", NULL, "SEC_MI2S_RX"},
26403 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
26404 {"BE_OUT", NULL, "PRI_MI2S_RX"},
26405 {"BE_OUT", NULL, "INT0_MI2S_RX"},
26406 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026407 {"BE_OUT", NULL, "INT2_MI2S_RX"},
26408 {"BE_OUT", NULL, "INT3_MI2S_RX"},
26409 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026410 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
26411 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
26412 {"BE_OUT", NULL, "INT_FM_RX"},
26413 {"BE_OUT", NULL, "PCM_RX"},
26414 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26415 {"BE_OUT", NULL, "AUX_PCM_RX"},
26416 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
26417 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
26418 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026419 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026420 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026421 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
26422 {"BE_OUT", NULL, "INT_FM_RX"},
26423 {"BE_OUT", NULL, "PCM_RX"},
26424 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26425 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
26426 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
26427 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
26428 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
26429 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
26430 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
26431 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
26432 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
26433 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
26434 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026435 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026436 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
26437 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
26438 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
26439 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
26440 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
26441 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
26442 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
26443 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
26444 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026445 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053026446 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
26447 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
26448 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
26449 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080026450 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026451 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
26452 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
26453 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
26454 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026455 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
26456 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026457 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
26458 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
26459 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
26460 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
26461 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
26462 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
26463 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
26464 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026465
26466 {"PRI_I2S_TX", NULL, "BE_IN"},
26467 {"MI2S_TX", NULL, "BE_IN"},
26468 {"QUAT_MI2S_TX", NULL, "BE_IN"},
26469 {"QUIN_MI2S_TX", NULL, "BE_IN"},
26470 {"PRI_MI2S_TX", NULL, "BE_IN"},
26471 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026472 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026473 {"INT2_MI2S_TX", NULL, "BE_IN"},
26474 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053026475 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026476 {"INT5_MI2S_TX", NULL, "BE_IN"},
26477 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026478 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026479 {"SLIMBUS_0_TX", NULL, "BE_IN" },
26480 {"SLIMBUS_1_TX", NULL, "BE_IN" },
26481 {"SLIMBUS_3_TX", NULL, "BE_IN" },
26482 {"SLIMBUS_4_TX", NULL, "BE_IN" },
26483 {"SLIMBUS_5_TX", NULL, "BE_IN" },
26484 {"SLIMBUS_6_TX", NULL, "BE_IN" },
26485 {"SLIMBUS_7_TX", NULL, "BE_IN" },
26486 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053026487 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026488 {"USB_AUDIO_TX", NULL, "BE_IN" },
26489 {"INT_BT_SCO_TX", NULL, "BE_IN"},
26490 {"INT_FM_TX", NULL, "BE_IN"},
26491 {"PCM_TX", NULL, "BE_IN"},
26492 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
26493 {"BE_OUT", NULL, "STUB_RX"},
26494 {"STUB_TX", NULL, "BE_IN"},
26495 {"STUB_1_TX", NULL, "BE_IN"},
26496 {"BE_OUT", NULL, "AUX_PCM_RX"},
26497 {"AUX_PCM_TX", NULL, "BE_IN"},
26498 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
26499 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
26500 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053026501 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026502 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026503 {"INCALL_RECORD_TX", NULL, "BE_IN"},
26504 {"INCALL_RECORD_RX", NULL, "BE_IN"},
26505 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
26506 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026507 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26508 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026509 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
26510 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
26511 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
26512 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
26513 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026514 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
26515 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026516 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
26517 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
26518 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
26519 {"PRI_TDM_TX_0", NULL, "BE_IN"},
26520 {"PRI_TDM_TX_1", NULL, "BE_IN"},
26521 {"PRI_TDM_TX_2", NULL, "BE_IN"},
26522 {"PRI_TDM_TX_3", NULL, "BE_IN"},
26523 {"SEC_TDM_TX_0", NULL, "BE_IN"},
26524 {"SEC_TDM_TX_1", NULL, "BE_IN"},
26525 {"SEC_TDM_TX_2", NULL, "BE_IN"},
26526 {"SEC_TDM_TX_3", NULL, "BE_IN"},
26527 {"TERT_TDM_TX_0", NULL, "BE_IN"},
26528 {"TERT_TDM_TX_1", NULL, "BE_IN"},
26529 {"TERT_TDM_TX_2", NULL, "BE_IN"},
26530 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026531 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026532 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
26533 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
26534 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
26535 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026536 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026537 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053026538 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
26539 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
26540 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
26541 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080026542 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026543 {"SEN_TDM_TX_0", NULL, "BE_IN"},
26544 {"SEN_TDM_TX_1", NULL, "BE_IN"},
26545 {"SEN_TDM_TX_2", NULL, "BE_IN"},
26546 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026547 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
26548 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
26549 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
26550 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
26551 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026552 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026553 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
26554 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
26555 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
26556 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
26557 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
26558 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026559 {"PRI_SPDIF_TX", NULL, "BE_IN"},
26560 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026561};
26562
26563static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
26564 struct snd_pcm_hw_params *params)
26565{
26566 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26567 unsigned int be_id = rtd->dai_link->id;
26568
26569 if (be_id >= MSM_BACKEND_DAI_MAX) {
26570 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26571 return -EINVAL;
26572 }
26573
26574 mutex_lock(&routing_lock);
26575 msm_bedais[be_id].sample_rate = params_rate(params);
26576 msm_bedais[be_id].channel = params_channels(params);
26577 msm_bedais[be_id].format = params_format(params);
26578 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
26579 __func__, msm_bedais[be_id].sample_rate,
26580 msm_bedais[be_id].format, be_id);
26581 mutex_unlock(&routing_lock);
26582 return 0;
26583}
26584
26585static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
26586{
26587 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26588 unsigned int be_id = rtd->dai_link->id;
26589 int i, session_type, path_type, topology;
26590 struct msm_pcm_routing_bdai_data *bedai;
26591 struct msm_pcm_routing_fdai_data *fdai;
26592
26593 pr_debug("%s: substream->pcm->id:%s\n",
26594 __func__, substream->pcm->id);
26595
26596 if (be_id >= MSM_BACKEND_DAI_MAX) {
26597 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26598 return -EINVAL;
26599 }
26600
26601 bedai = &msm_bedais[be_id];
26602 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
26603 0 : 1);
26604 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
26605 path_type = ADM_PATH_PLAYBACK;
26606 else
26607 path_type = ADM_PATH_LIVE_REC;
26608
26609 mutex_lock(&routing_lock);
26610 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26611 if (!is_mm_lsm_fe_id(i))
26612 continue;
26613 fdai = &fe_dai_map[i][session_type];
26614 if (fdai->strm_id != INVALID_SESSION) {
26615 int idx;
26616 int port_id;
26617 unsigned long copp =
26618 session_copp_map[i][session_type][be_id];
26619 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
26620 if (test_bit(idx, &copp))
26621 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070026622
26623 if (idx >= MAX_COPPS_PER_PORT) {
26624 pr_debug("%s: copp idx is invalid, exiting\n",
26625 __func__);
26626 continue;
26627 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026628 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053026629 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026630 topology = adm_get_topology_for_port_copp_idx(port_id,
26631 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026632 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053026633 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026634 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
26635 __func__, copp, i, session_type, be_id,
26636 topology);
26637 clear_bit(idx,
26638 &session_copp_map[i][session_type][be_id]);
26639 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026640 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053026641 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026642 topology);
26643 }
26644 }
26645
26646 bedai->active = 0;
26647 bedai->sample_rate = 0;
26648 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026649 mutex_unlock(&routing_lock);
26650
26651 return 0;
26652}
26653
26654static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
26655{
26656 struct snd_soc_pcm_runtime *rtd = substream->private_data;
26657 unsigned int be_id = rtd->dai_link->id;
26658 int i, path_type, topology;
26659 int session_type = INVALID_SESSION;
26660 struct msm_pcm_routing_bdai_data *bedai;
26661 u32 channels, sample_rate;
26662 uint16_t bits_per_sample = 16, voc_path_type;
26663 struct msm_pcm_routing_fdai_data *fdai;
26664 u32 session_id;
26665 struct media_format_info voc_be_media_format;
26666 bool is_lsm;
26667
26668 pr_debug("%s: substream->pcm->id:%s\n",
26669 __func__, substream->pcm->id);
26670
26671 if (be_id >= MSM_BACKEND_DAI_MAX) {
26672 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
26673 return -EINVAL;
26674 }
26675
26676 bedai = &msm_bedais[be_id];
26677
26678 mutex_lock(&routing_lock);
26679 if (bedai->active == 1)
26680 goto done; /* Ignore prepare if back-end already active */
26681
26682 /* AFE port is not active at this point. However, still
26683 * go ahead setting active flag under the notion that
26684 * QDSP6 is able to handle ADM starting before AFE port
26685 * is started.
26686 */
26687 bedai->active = 1;
26688
26689 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26690 if (!(is_mm_lsm_fe_id(i) &&
26691 route_check_fe_id_adm_support(i)))
26692 continue;
26693
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026694 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
26695 SESSION_TYPE_RX : SESSION_TYPE_TX;
26696 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026697 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026698 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026699 path_type = ADM_PATH_COMPRESSED_RX;
26700 else
26701 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026702 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026703 if ((fdai->passthr_mode != LEGACY_PCM) &&
26704 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020026705 path_type = ADM_PATH_COMPRESSED_TX;
26706 else
26707 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026708 }
26709
26710 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
26711 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026712 if (fdai->strm_id != INVALID_SESSION) {
26713 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053026714 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026715
26716 if (session_type == SESSION_TYPE_TX &&
26717 fdai->be_srate &&
26718 (fdai->be_srate != bedai->sample_rate)) {
26719 pr_debug("%s: flush strm %d diff BE rates\n",
26720 __func__,
26721 fdai->strm_id);
26722
26723 if (fdai->event_info.event_func)
26724 fdai->event_info.event_func(
26725 MSM_PCM_RT_EVT_BUF_RECFG,
26726 fdai->event_info.priv_data);
26727 fdai->be_srate = 0; /* might not need it */
26728 }
26729 bits_per_sample = msm_routing_get_bit_width(
26730 bedai->format);
26731
26732 app_type =
26733 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
26734 if (app_type && is_lsm) {
26735 app_type_idx =
26736 msm_pcm_routing_get_lsm_app_type_idx(app_type);
26737 sample_rate =
26738 fe_dai_app_type_cfg[i][session_type][be_id]
26739 .sample_rate;
26740 bits_per_sample =
26741 lsm_app_type_cfg[app_type_idx].bit_width;
26742 } else if (app_type) {
26743 app_type_idx =
26744 msm_pcm_routing_get_app_type_idx(app_type);
26745 sample_rate =
26746 fe_dai_app_type_cfg[i][session_type]
26747 [be_id].sample_rate;
26748 bits_per_sample =
26749 app_type_cfg[app_type_idx].bit_width;
26750 } else
26751 sample_rate = bedai->sample_rate;
26752 /*
26753 * check if ADM needs to be configured with different
26754 * channel mapping than backend
26755 */
26756 if (!bedai->adm_override_ch)
26757 channels = bedai->channel;
26758 else
26759 channels = bedai->adm_override_ch;
26760 acdb_dev_id =
26761 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
26762 topology = msm_routing_get_adm_topology(i, session_type,
26763 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020026764
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026765 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
26766 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
26767 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020026768 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
26769
Surendar Karkae7507512018-07-20 15:46:54 +053026770 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026771 sample_rate, channels, topology,
26772 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053026773 app_type, acdb_dev_id,
26774 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026775 if ((copp_idx < 0) ||
26776 (copp_idx >= MAX_COPPS_PER_PORT)) {
26777 pr_err("%s: adm open failed\n", __func__);
26778 mutex_unlock(&routing_lock);
26779 return -EINVAL;
26780 }
26781 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
26782 __func__, i, session_type, be_id);
26783 set_bit(copp_idx,
26784 &session_copp_map[i][session_type][be_id]);
26785
26786 if (msm_is_resample_needed(
26787 sample_rate,
26788 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053026789 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026790 bedai->sample_rate);
26791
26792 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026793 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026794 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026795 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053026796 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026797 topology, channels);
26798 }
26799 }
26800
26801 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
26802 session_id = msm_pcm_routing_get_voc_sessionid(i);
26803 if (session_id) {
26804 pr_debug("%s voice session_id: 0x%x\n", __func__,
26805 session_id);
26806
26807 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
26808 voc_path_type = RX_PATH;
26809 else
26810 voc_path_type = TX_PATH;
26811
26812 voc_set_route_flag(session_id, voc_path_type, 1);
26813
26814 memset(&voc_be_media_format, 0,
26815 sizeof(struct media_format_info));
26816
26817 voc_be_media_format.port_id = bedai->port_id;
26818 voc_be_media_format.num_channels = bedai->channel;
26819 voc_be_media_format.sample_rate = bedai->sample_rate;
26820 voc_be_media_format.bits_per_sample = bedai->format;
26821 /* Defaulting this to 1 for voice call usecases */
26822 voc_be_media_format.channel_mapping[0] = 1;
26823
26824 voc_set_device_config(session_id, voc_path_type,
26825 &voc_be_media_format);
26826
26827 if (voc_get_route_flag(session_id, RX_PATH) &&
26828 voc_get_route_flag(session_id, TX_PATH))
26829 voc_enable_device(session_id);
26830 }
26831 }
26832
26833 /* Check if backend is an external ec ref port and set as needed */
26834 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
26835
26836 memset(&voc_be_media_format, 0,
26837 sizeof(struct media_format_info));
26838
26839 /* Get format info for ec ref port from msm_bedais[] */
26840 voc_be_media_format.port_id = bedai->port_id;
26841 voc_be_media_format.num_channels = bedai->channel;
26842 voc_be_media_format.bits_per_sample = bedai->format;
26843 voc_be_media_format.sample_rate = bedai->sample_rate;
26844 /* Defaulting this to 1 for voice call usecases */
26845 voc_be_media_format.channel_mapping[0] = 1;
26846 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
26847 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
26848 __func__, voc_be_media_format.port_id,
26849 voc_be_media_format.num_channels,
26850 voc_be_media_format.bits_per_sample,
26851 voc_be_media_format.sample_rate);
26852 }
26853
26854done:
26855 mutex_unlock(&routing_lock);
26856
26857 return 0;
26858}
26859
26860static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
26861 int fe_id)
26862{
26863 int index, topo_id, be_idx;
26864 unsigned long pp_config = 0;
26865 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026866 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026867 bool compr_passthr_mode = true;
26868
26869 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
26870
26871 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
26872 pr_err("%s: Device pp params on invalid port %d\n",
26873 __func__, port_id);
26874 return -EINVAL;
26875 }
26876
26877 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
26878 if (port_id == msm_bedais[be_idx].port_id)
26879 break;
26880 }
26881
26882 if (be_idx >= MSM_BACKEND_DAI_MAX) {
26883 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
26884 return -EINVAL;
26885 }
26886
26887 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
26888 if (msm_bedais_pp_params[index].port_id == port_id)
26889 break;
26890 }
26891 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
26892 pr_err("%s: Invalid backend pp params index %d\n",
26893 __func__, index);
26894 return -EINVAL;
26895 }
26896
26897 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
26898 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
26899 pr_err("%s: Invalid passthrough topology 0x%x\n",
26900 __func__, topo_id);
26901 return -EINVAL;
26902 }
26903
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053026904 session_type =
26905 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
26906 SESSION_TYPE_RX : SESSION_TYPE_TX;
26907
26908 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
26909 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026910 compr_passthr_mode = false;
26911
26912 pp_config = msm_bedais_pp_params[index].pp_params_config;
26913 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
26914 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
26915 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
26916 mute_on = msm_bedais_pp_params[index].mute_on;
26917 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
26918 adm_send_compressed_device_mute(port_id,
26919 copp_idx,
26920 mute_on);
26921 }
26922 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
26923 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
26924 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
26925 &pp_config);
26926 latency = msm_bedais_pp_params[index].latency;
26927 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
26928 adm_send_compressed_device_latency(port_id,
26929 copp_idx,
26930 latency);
26931 }
26932 return 0;
26933}
26934
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026935static uint32_t msm_routing_get_topology(size_t data_size, void *data)
26936{
26937 uint32_t topology = NULL_COPP_TOPOLOGY;
26938 void *cal_info = NULL;
26939 uint32_t size = 0;
26940
26941 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053026942 if (data_size < sizeof(struct audio_cal_type_basic) +
26943 sizeof(struct audio_cal_info_adm_top)) {
26944 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
26945 goto done;
26946 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026947 size = data_size - sizeof(struct audio_cal_type_basic);
26948 cal_info = kzalloc(size, GFP_KERNEL);
26949
26950 if (!cal_info)
26951 goto done;
26952
26953 memcpy(cal_info,
26954 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
26955
26956 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
26957 kfree(cal_info);
26958 cal_info = NULL;
26959
26960done:
26961 pr_debug("%s: Using topology %d\n", __func__, topology);
26962
26963 return topology;
26964}
26965
26966static void msm_routing_load_topology(size_t data_size, void *data)
26967{
26968 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053026969 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026970
26971 topology_id = msm_routing_get_topology(data_size, data);
26972 if (topology_id != NULL_COPP_TOPOLOGY)
26973 ret = q6core_load_unload_topo_modules(topology_id,
26974 CORE_LOAD_TOPOLOGY);
26975 if (ret < 0)
26976 pr_debug("%s %d load topology failed\n",
26977 __func__, topology_id);
26978
26979}
26980
26981static void msm_routing_unload_topology(uint32_t topology_id)
26982{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053026983 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070026984
26985 if (topology_id != NULL_COPP_TOPOLOGY)
26986 ret = q6core_load_unload_topo_modules(topology_id,
26987 CORE_UNLOAD_TOPOLOGY);
26988 if (ret < 0)
26989 pr_debug("%s %d unload topology failed\n",
26990 __func__, topology_id);
26991
26992}
26993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026994static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
26995 struct snd_ctl_elem_value *ucontrol)
26996{
26997 int pp_id = ucontrol->value.integer.value[0];
26998 int port_id = 0;
26999 int index, be_idx, i, topo_id, idx;
27000 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027001 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027002 bool compr_passthr_mode = true;
27003
27004 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
27005
27006 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
27007 port_id = msm_bedais[be_idx].port_id;
27008 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
27009 break;
27010 }
27011
27012 if (be_idx >= MSM_BACKEND_DAI_MAX) {
27013 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
27014 return -EINVAL;
27015 }
27016
27017 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
27018 if (msm_bedais_pp_params[index].port_id == port_id)
27019 break;
27020 }
27021 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
27022 pr_err("%s: Invalid pp params backend index %d\n",
27023 __func__, index);
27024 return -EINVAL;
27025 }
27026
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027027 session_type =
27028 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
27029 SESSION_TYPE_RX : SESSION_TYPE_TX;
27030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027031 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
27032 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027033 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
27034 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027035 compr_passthr_mode = false;
27036
27037 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27038 unsigned long copp =
27039 session_copp_map[i]
27040 [SESSION_TYPE_RX][be_idx];
27041 if (!test_bit(idx, &copp))
27042 continue;
27043 topo_id = adm_get_topology_for_port_copp_idx(port_id,
27044 idx);
27045 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
27046 continue;
27047 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
27048 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027049 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027050 switch (pp_id) {
27051 case ADM_PP_PARAM_MUTE_ID:
27052 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
27053 mute = ucontrol->value.integer.value[1] ? true : false;
27054 msm_bedais_pp_params[index].mute_on = mute;
27055 set_bit(ADM_PP_PARAM_MUTE_BIT,
27056 &msm_bedais_pp_params[index].pp_params_config);
27057 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27058 adm_send_compressed_device_mute(port_id,
27059 idx, mute);
27060 break;
27061 case ADM_PP_PARAM_LATENCY_ID:
27062 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
27063 msm_bedais_pp_params[index].latency =
27064 ucontrol->value.integer.value[1];
27065 set_bit(ADM_PP_PARAM_LATENCY_BIT,
27066 &msm_bedais_pp_params[index].pp_params_config);
27067 latency = msm_bedais_pp_params[index].latency =
27068 ucontrol->value.integer.value[1];
27069 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27070 adm_send_compressed_device_latency(port_id,
27071 idx, latency);
27072 break;
27073 default:
27074 pr_info("%s, device pp param %d not supported\n",
27075 __func__, pp_id);
27076 break;
27077 }
27078 }
27079 }
27080 return 0;
27081}
27082
27083static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
27084 struct snd_ctl_elem_value *ucontrol)
27085{
27086 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
27087 return 0;
27088}
27089
27090static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
27091 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
27092 0, 3, msm_routing_get_device_pp_params_mixer,
27093 msm_routing_put_device_pp_params_mixer),
27094};
27095
27096static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
27097 struct snd_ctl_elem_value *ucontrol)
27098{
27099 ucontrol->value.integer.value[0] =
27100 core_get_license_status(ASM_MEDIA_FMT_APTX);
27101 pr_debug("%s: status %ld\n", __func__,
27102 ucontrol->value.integer.value[0]);
27103 return 0;
27104}
27105
27106static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
27107 struct snd_ctl_elem_value *ucontrol)
27108{
27109 int32_t status = 0;
27110
27111 status = core_set_license(ucontrol->value.integer.value[0],
27112 APTX_CLASSIC_DEC_LICENSE_ID);
27113 pr_debug("%s: status %d\n", __func__, status);
27114 return status;
27115}
27116
27117static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
27118 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
27119 0xFFFF, 0, msm_aptx_dec_license_control_get,
27120 msm_aptx_dec_license_control_put),
27121};
27122
Rohit kumar63ffaa72019-02-01 18:05:33 +053027123static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
27124 struct snd_ctl_elem_value *ucontrol)
27125{
27126 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
27127 uint32_t be_idx = ucontrol->value.integer.value[0];
27128 int i;
27129
27130 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
27131 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
27132 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
27133 pr_err("%s: Invalid channel map %d\n",
27134 __func__, channel_map[i]);
27135 return -EINVAL;
27136 }
27137 }
27138 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
27139
27140 return 0;
27141}
27142
27143static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
27144 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
27145 MSM_BACKEND_DAI_MAX, 0,
27146 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
27147 msm_routing_put_port_chmap_mixer),
27148};
27149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027150static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
27151 struct snd_ctl_elem_info *uinfo)
27152{
27153 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
27154 uinfo->count = sizeof(be_dai_name_table);
27155 return 0;
27156}
27157
27158static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
27159 unsigned int __user *bytes,
27160 unsigned int size)
27161{
27162 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053027163 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027164
27165 if (size < sizeof(be_dai_name_table)) {
27166 pr_err("%s: invalid size %d requested, returning\n",
27167 __func__, size);
27168 ret = -EINVAL;
27169 goto done;
27170 }
27171
27172 /*
27173 * Fill be_dai_name_table from msm_bedais table to reduce code changes
27174 * needed when adding new backends
27175 */
27176 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
27177 be_dai_name_table[i].be_id = i;
27178 strlcpy(be_dai_name_table[i].be_name,
27179 msm_bedais[i].name,
27180 LPASS_BE_NAME_MAX_LENGTH);
27181 }
27182
27183 ret = copy_to_user(bytes, &be_dai_name_table,
27184 sizeof(be_dai_name_table));
27185 if (ret) {
27186 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
27187 ret = -EFAULT;
27188 }
27189
27190done:
27191 return ret;
27192}
27193
27194static const struct snd_kcontrol_new
27195 msm_routing_be_dai_name_table_mixer_controls[] = {
27196 {
27197 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
27198 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
27199 .info = msm_routing_be_dai_name_table_info,
27200 .name = "Backend DAI Name Table",
27201 .tlv.c = snd_soc_bytes_tlv_callback,
27202 .private_value = (unsigned long) &(struct soc_bytes_ext) {
27203 .max = sizeof(be_dai_name_table),
27204 .get = msm_routing_be_dai_name_table_tlv_get,
27205 }
27206 },
27207};
27208
27209static int msm_routing_stereo_channel_reverse_control_get(
27210 struct snd_kcontrol *kcontrol,
27211 struct snd_ctl_elem_value *ucontrol)
27212{
27213 ucontrol->value.integer.value[0] = swap_ch;
27214 pr_debug("%s: Swap channel value: %ld\n", __func__,
27215 ucontrol->value.integer.value[0]);
27216 return 0;
27217}
27218
27219static int msm_routing_stereo_channel_reverse_control_put(
27220 struct snd_kcontrol *kcontrol,
27221 struct snd_ctl_elem_value *ucontrol)
27222{
27223 int i, idx, be_index, port_id;
27224 int ret = 0;
27225 unsigned long copp;
27226
27227 pr_debug("%s Swap channel value:%ld\n", __func__,
27228 ucontrol->value.integer.value[0]);
27229
27230 swap_ch = ucontrol->value.integer.value[0];
27231
27232 mutex_lock(&routing_lock);
27233 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
27234 port_id = msm_bedais[be_index].port_id;
27235 if (!msm_bedais[be_index].active)
27236 continue;
27237
27238 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
27239 MSM_FRONTEND_DAI_MM_SIZE) {
27240 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
27241 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27242 if (!test_bit(idx, &copp))
27243 continue;
27244
27245 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
27246 __func__, port_id, idx);
27247 ret = adm_swap_speaker_channels(
27248 port_id, idx,
27249 msm_bedais[be_index].sample_rate,
27250 swap_ch);
27251 if (ret) {
27252 pr_err("%s:Swap_channel failed, err=%d\n",
27253 __func__, ret);
27254 goto done;
27255 }
27256 }
27257 }
27258 }
27259done:
27260 mutex_unlock(&routing_lock);
27261 return ret;
27262}
27263
27264static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
27265 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
27266 1, 0, msm_routing_stereo_channel_reverse_control_get,
27267 msm_routing_stereo_channel_reverse_control_put),
27268};
27269
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027270static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
27271 struct snd_ctl_elem_info *uinfo)
27272{
27273 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
27274 uinfo->count = 1;
27275 return 0;
27276}
27277
27278static int msm_routing_instance_id_support_put(
27279 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
27280{
27281 bool supported = ucontrol->value.integer.value[0] ? true : false;
27282
27283 q6common_update_instance_id_support(supported);
27284 return 0;
27285}
27286
27287static int msm_routing_instance_id_support_get(
27288 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
27289{
27290 bool supported = false;
27291
27292 supported = q6common_is_instance_id_supported();
27293 ucontrol->value.integer.value[0] = supported ? 1 : 0;
27294
27295 return 0;
27296}
27297
27298static const struct snd_kcontrol_new
27299 msm_routing_feature_support_mixer_controls[] = {
27300 {
27301 .access = SNDRV_CTL_ELEM_ACCESS_READ |
27302 SNDRV_CTL_ELEM_ACCESS_WRITE,
27303 .info = msm_routing_instance_id_support_info,
27304 .name = "Instance ID Support",
27305 .put = msm_routing_instance_id_support_put,
27306 .get = msm_routing_instance_id_support_get,
27307 },
27308};
27309
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027310static const struct snd_pcm_ops msm_routing_pcm_ops = {
27311 .hw_params = msm_pcm_routing_hw_params,
27312 .close = msm_pcm_routing_close,
27313 .prepare = msm_pcm_routing_prepare,
27314};
27315
27316/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080027317static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027318{
Meng Wangee084a02018-09-04 16:11:58 +080027319 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027320 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080027321 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
27322 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080027323 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027324 ARRAY_SIZE(intercon));
27325
Meng Wangee084a02018-09-04 16:11:58 +080027326 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027327
Meng Wangee084a02018-09-04 16:11:58 +080027328 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027329 ARRAY_SIZE(lsm_controls));
27330
Meng Wangee084a02018-09-04 16:11:58 +080027331 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027332 ARRAY_SIZE(aanc_slim_0_rx_mux));
27333
Meng Wangee084a02018-09-04 16:11:58 +080027334 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053027335 ARRAY_SIZE(aanc_noise_level));
27336
Meng Wangee084a02018-09-04 16:11:58 +080027337 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027338 ARRAY_SIZE(msm_voc_session_controls));
27339
Meng Wangee084a02018-09-04 16:11:58 +080027340 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027341 ARRAY_SIZE(app_type_cfg_controls));
27342
Meng Wangee084a02018-09-04 16:11:58 +080027343 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027344 ARRAY_SIZE(lsm_app_type_cfg_controls));
27345
Meng Wangee084a02018-09-04 16:11:58 +080027346 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070027347 ARRAY_SIZE(module_cfg_controls));
27348
Meng Wangee084a02018-09-04 16:11:58 +080027349 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027350 stereo_to_custom_stereo_controls,
27351 ARRAY_SIZE(stereo_to_custom_stereo_controls));
27352
Meng Wangee084a02018-09-04 16:11:58 +080027353 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027354 ARRAY_SIZE(ec_ref_param_controls));
27355
Meng Wangee084a02018-09-04 16:11:58 +080027356 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027357 ARRAY_SIZE(channel_mixer_controls));
27358
Meng Wangee084a02018-09-04 16:11:58 +080027359 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027360
Meng Wangee084a02018-09-04 16:11:58 +080027361 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027362
Meng Wangee084a02018-09-04 16:11:58 +080027363 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027364
Meng Wangee084a02018-09-04 16:11:58 +080027365 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027366 use_ds1_or_ds2_controls,
27367 ARRAY_SIZE(use_ds1_or_ds2_controls));
27368
Meng Wangee084a02018-09-04 16:11:58 +080027369 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027370 device_pp_params_mixer_controls,
27371 ARRAY_SIZE(device_pp_params_mixer_controls));
27372
Meng Wangee084a02018-09-04 16:11:58 +080027373 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027374 msm_routing_be_dai_name_table_mixer_controls,
27375 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
27376
Meng Wangee084a02018-09-04 16:11:58 +080027377 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027378 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080027379 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027380 ARRAY_SIZE(adm_channel_config_controls));
27381
Meng Wangee084a02018-09-04 16:11:58 +080027382 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027383 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080027384 snd_soc_add_component_controls(component,
27385 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027386 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080027387 snd_soc_add_component_controls(
27388 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027389 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053027390 snd_soc_add_component_controls(component,
27391 port_multi_channel_map_mixer_controls,
27392 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080027393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027394 return 0;
27395}
27396
27397int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
27398{
27399 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
27400}
27401
27402void msm_routing_pcm_free(struct snd_pcm *pcm)
27403{
27404 msm_pcm_routing_hwdep_free(pcm);
27405}
27406
Meng Wangee084a02018-09-04 16:11:58 +080027407static struct snd_soc_component_driver msm_soc_routing_component = {
27408 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027409 .ops = &msm_routing_pcm_ops,
27410 .probe = msm_routing_probe,
27411 .pcm_new = msm_routing_pcm_new,
27412 .pcm_free = msm_routing_pcm_free,
27413};
27414
27415static int msm_routing_pcm_probe(struct platform_device *pdev)
27416{
27417
27418 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080027419 return snd_soc_register_component(&pdev->dev,
27420 &msm_soc_routing_component,
27421 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027422}
27423
27424static int msm_routing_pcm_remove(struct platform_device *pdev)
27425{
Meng Wangee084a02018-09-04 16:11:58 +080027426 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027427 return 0;
27428}
27429
27430static const struct of_device_id msm_pcm_routing_dt_match[] = {
27431 {.compatible = "qcom,msm-pcm-routing"},
27432 {}
27433};
27434MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
27435
27436static struct platform_driver msm_routing_pcm_driver = {
27437 .driver = {
27438 .name = "msm-pcm-routing",
27439 .owner = THIS_MODULE,
27440 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080027441 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027442 },
27443 .probe = msm_routing_pcm_probe,
27444 .remove = msm_routing_pcm_remove,
27445};
27446
27447int msm_routing_check_backend_enabled(int fedai_id)
27448{
27449 int i;
27450
27451 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
27452 /* bad ID assigned in machine driver */
27453 pr_err("%s: bad MM ID\n", __func__);
27454 return 0;
27455 }
27456 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
27457 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
27458 return msm_bedais[i].active;
27459 }
27460 return 0;
27461}
27462
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027463static int get_cal_type_index(int32_t cal_type)
27464{
27465 int ret = -EINVAL;
27466
27467 switch (cal_type) {
27468 case ADM_TOPOLOGY_CAL_TYPE:
27469 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
27470 break;
27471 case ADM_LSM_TOPOLOGY_CAL_TYPE:
27472 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
27473 break;
27474 default:
27475 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
27476 }
27477 return ret;
27478}
27479
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027480static int msm_routing_set_cal(int32_t cal_type,
27481 size_t data_size, void *data)
27482{
27483 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027484 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027485 pr_debug("%s\n", __func__);
27486
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027487 cal_index = get_cal_type_index(cal_type);
27488 if (cal_index < 0) {
27489 pr_err("%s: Could not get cal index %d\n",
27490 __func__, cal_index);
27491 ret = -EINVAL;
27492 goto done;
27493 }
27494
27495 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027496 if (ret < 0) {
27497 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
27498 __func__, ret, cal_type);
27499 ret = -EINVAL;
27500 goto done;
27501 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027502 /* Pre-load if it is ADM topology */
27503 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
27504 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
27505 msm_routing_load_topology(data_size, data);
27506 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027507done:
27508 return ret;
27509}
27510
27511static void msm_routing_delete_cal_data(void)
27512{
27513 pr_debug("%s\n", __func__);
27514
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027515 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027516}
27517
27518static int msm_routing_init_cal_data(void)
27519{
27520 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027521 struct cal_type_info cal_type_info[] = {
27522 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027523 {NULL, NULL, NULL,
27524 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027525 {NULL, NULL, cal_utils_match_buf_num} },
27526
27527 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
27528 {NULL, NULL, NULL,
27529 msm_routing_set_cal, NULL, NULL} },
27530 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027531 };
27532 pr_debug("%s\n", __func__);
27533
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053027534 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
27535 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027536 if (ret < 0) {
27537 pr_err("%s: could not create cal type!\n",
27538 __func__);
27539 ret = -EINVAL;
27540 goto err;
27541 }
27542
27543 return ret;
27544err:
27545 msm_routing_delete_cal_data();
27546 return ret;
27547}
27548
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053027549int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027550{
27551 mutex_init(&routing_lock);
27552 if (msm_routing_init_cal_data())
27553 pr_err("%s: could not init cal data!\n", __func__);
27554
27555 afe_set_routing_callback(
27556 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
27557
27558 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
27559 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
27560
27561 return platform_driver_register(&msm_routing_pcm_driver);
27562}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027563
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053027564void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027565{
27566 msm_routing_delete_cal_data();
27567 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
27568 mutex_destroy(&routing_lock);
27569 platform_driver_unregister(&msm_routing_pcm_driver);
27570}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027571
27572MODULE_DESCRIPTION("MSM routing platform driver");
27573MODULE_LICENSE("GPL v2");