blob: 09121e9d8434eb681e46d76b5bec438feb7d3218 [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},
Ralf Herz29e07132019-07-26 15:15:21 +0200692 { AFE_PORT_ID_PRIMARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
693 LPASS_BE_PRI_META_MI2S_RX},
694 { AFE_PORT_ID_SECONDARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
695 LPASS_BE_SEC_META_MI2S_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696};
697
698/* Track ASM playback & capture sessions of DAI
699 * Track LSM listen sessions
700 */
701static struct msm_pcm_routing_fdai_data
702 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
703 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530706 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530709 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530712 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530718 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530721 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530724 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530733 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530736 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530760 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700763 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chenb097d922019-07-31 17:28:02 -0700766 /* MULTIMEDIA22 */
767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530769 /* MULTIMEDIA26 */
770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
772 /* MULTIMEDIA27 */
773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530775 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530778 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530779 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
780 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530781 /* MULTIMEDIA30 */
782 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
783 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530784 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530785 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
786 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530787 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530788 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
789 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530790 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530791 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
792 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530793 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530794 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
795 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530796 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530797 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
798 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530799 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530800 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
801 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530802 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530803 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
804 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530805 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530806 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
807 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530808 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530809 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
810 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530811 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530812 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
813 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530814 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530815 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
816 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530817 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530818 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
819 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530820 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530821 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
822 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530823 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530824 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
825 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530826 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530827 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
828 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530829 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530830 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
831 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530832 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530833 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
834 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530835 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530836 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
837 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530838};
839
840static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
841 [MSM_BACKEND_DAI_MAX];
842static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
843static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
844static struct msm_pcm_stream_app_type_cfg
845 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
846
847static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
848
Florian Pfister522073c2018-09-26 15:39:15 +0200849/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530850void msm_pcm_routing_get_bedai_info(int be_idx,
851 struct msm_pcm_routing_bdai_data *be_dai)
852{
853 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
854 memcpy(be_dai, &msm_bedais[be_idx],
855 sizeof(struct msm_pcm_routing_bdai_data));
856}
857
Florian Pfister522073c2018-09-26 15:39:15 +0200858/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530859void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
860 struct msm_pcm_routing_fdai_data *fe_dai)
861{
862 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
863 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
864 sizeof(struct msm_pcm_routing_fdai_data));
865}
866
867void msm_pcm_routing_acquire_lock(void)
868{
869 mutex_lock(&routing_lock);
870}
871
872void msm_pcm_routing_release_lock(void)
873{
874 mutex_unlock(&routing_lock);
875}
876
877static int msm_pcm_routing_get_app_type_idx(int app_type)
878{
879 int idx;
880
881 pr_debug("%s: app_type: %d\n", __func__, app_type);
882 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
883 if (app_type_cfg[idx].app_type == app_type)
884 return idx;
885 }
886 pr_info("%s: App type not available, fallback to default\n", __func__);
887 return 0;
888}
889
890static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
891{
892 int idx;
893
894 pr_debug("%s: app_type: %d\n", __func__, app_type);
895 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
896 if (lsm_app_type_cfg[idx].app_type == app_type)
897 return idx;
898 }
899 pr_debug("%s: App type not available, fallback to default\n", __func__);
900 return 0;
901}
902
Surendar Karkae7507512018-07-20 15:46:54 +0530903static int get_port_id(int port_id)
904{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530905 int ret = port_id;
906
907 if (port_id == AFE_LOOPBACK_TX) {
908 /*
909 * Return afe_loopback_tx_port_id if set. Else return
910 * msm_ec_ref_port_id to maintain backward compatibility.
911 */
912 if (afe_loopback_tx_port_id != -1)
913 ret = afe_loopback_tx_port_id;
914 else
915 ret = msm_ec_ref_port_id;
916 }
917
918 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530919}
920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530921static bool is_mm_lsm_fe_id(int fe_id)
922{
923 bool rc = true;
924
925 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
926 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
927 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
928 rc = false;
929 }
930 return rc;
931}
932
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700933/*
934 * msm_pcm_routing_send_chmix_cfg:
935 * send the channel mixer command to mix the input channels
936 * into output channels.
937 *
938 * @fe_id: front end id
939 * @ip_channel_cnt: input channel count
940 * @op_channel_cnt: output channel count
941 * @ch_wght_coeff: channel weight co-efficients for channel mixing
942 * @session_type: indicates session is of type TX or RX
943 * @stream_type: indicates either Audio or Listen stream type
944 */
945int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
946 int op_channel_cnt, int *ch_wght_coeff,
947 int session_type, int stream_type)
948{
949
950 int rc = 0, idx = 0;
951 int be_index = 0, port_id;
952 unsigned int session_id = 0;
953
954 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
955 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
956 stream_type);
957 if (!is_mm_lsm_fe_id(fe_id)) {
958 /* bad ID assigned in machine driver */
959 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
960 return -EINVAL;
961 }
962
963 if (ch_wght_coeff == NULL) {
964 pr_err("%s: Null channel weightage coefficients passed\n",
965 __func__);
966 return -EINVAL;
967 }
968
969 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
970 port_id = msm_bedais[be_index].port_id;
971 if (!msm_bedais[be_index].active ||
972 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
973 continue;
974
975 session_id = fe_dai_map[fe_id][session_type].strm_id;
976
977 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
978 unsigned long copp =
979 session_copp_map[fe_id][session_type][be_index];
980 if (!test_bit(idx, &copp))
981 continue;
982 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
983 session_id, ip_channel_cnt,
984 op_channel_cnt, ch_wght_coeff,
985 session_type, stream_type);
986 if (rc < 0)
987 pr_err("%s: err setting channel mix config\n",
988 __func__);
989 }
990 }
991
992 return 0;
993}
994EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
995
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530996/**
997 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
998 * setting before use case start.
999 *
1000 * @fe_id: frontend idx
1001 * @type: stream direction type
1002 * @params: parameters of channel mixer setting
1003 *
1004 * Return 0 for success
1005 */
1006int msm_pcm_routing_set_channel_mixer_cfg(
1007 int fe_id, int type,
1008 struct msm_pcm_channel_mixer *params)
1009{
1010 int i, j = 0;
1011
1012 channel_mixer_v2[fe_id][type].enable = params->enable;
1013 channel_mixer_v2[fe_id][type].rule = params->rule;
1014 channel_mixer_v2[fe_id][type].input_channel =
1015 params->input_channel;
1016 channel_mixer_v2[fe_id][type].output_channel =
1017 params->output_channel;
1018 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1019
1020 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1021 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1022 params->in_ch_map[i];
1023 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1024 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1025 params->out_ch_map[i];
1026
1027 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1028 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1029 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1030 params->channel_weight[i][j];
1031
1032 channel_mixer_v2[fe_id][type].override_in_ch_map =
1033 params->override_in_ch_map;
1034 channel_mixer_v2[fe_id][type].override_out_ch_map =
1035 params->override_out_ch_map;
1036
1037 return 0;
1038}
1039EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1040
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301041int msm_pcm_routing_reg_stream_app_type_cfg(
1042 int fedai_id, int session_type, int be_id,
1043 struct msm_pcm_stream_app_type_cfg *cfg_data)
1044{
1045 int ret = 0;
1046
1047 if (cfg_data == NULL) {
1048 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1049 ret = -EINVAL;
1050 goto done;
1051 }
1052
1053 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1054 __func__, fedai_id, session_type, be_id,
1055 cfg_data->app_type, cfg_data->acdb_dev_id,
1056 cfg_data->sample_rate);
1057
1058 if (!is_mm_lsm_fe_id(fedai_id)) {
1059 pr_err("%s: Invalid machine driver ID %d\n",
1060 __func__, fedai_id);
1061 ret = -EINVAL;
1062 goto done;
1063 }
1064 if (session_type != SESSION_TYPE_RX &&
1065 session_type != SESSION_TYPE_TX) {
1066 pr_err("%s: Invalid session type %d\n",
1067 __func__, session_type);
1068 ret = -EINVAL;
1069 goto done;
1070 }
1071 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1072 pr_err("%s: Received out of bounds be_id %d\n",
1073 __func__, be_id);
1074 ret = -EINVAL;
1075 goto done;
1076 }
1077
1078 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1079
1080 /*
1081 * Store the BE ID of the configuration information set as the latest so
1082 * the get mixer control knows what to return.
1083 */
1084 last_be_id_configured[fedai_id][session_type] = be_id;
1085
1086done:
1087 return ret;
1088}
1089EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1090
1091/**
1092 * msm_pcm_routing_get_stream_app_type_cfg
1093 *
1094 * Receives fedai_id, session_type, be_id, and populates app_type,
1095 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1096 * -EINVAL and does not alter passed values.
1097 *
1098 * fedai_id - Passed value, front end ID for which app type config is wanted
1099 * session_type - Passed value, session type for which app type config
1100 * is wanted
1101 * be_id - Returned value, back end device id the app type config data is for
1102 * cfg_data - Returned value, configuration data used by app type config
1103 */
1104int msm_pcm_routing_get_stream_app_type_cfg(
1105 int fedai_id, int session_type, int *bedai_id,
1106 struct msm_pcm_stream_app_type_cfg *cfg_data)
1107{
1108 int be_id;
1109 int ret = 0;
1110
1111 if (bedai_id == NULL) {
1112 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1113 ret = -EINVAL;
1114 goto done;
1115 } else if (cfg_data == NULL) {
1116 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1117 ret = -EINVAL;
1118 goto done;
1119 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1120 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1121 ret = -EINVAL;
1122 goto done;
1123 } else if (session_type != SESSION_TYPE_RX &&
1124 session_type != SESSION_TYPE_TX) {
1125 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1126 ret = -EINVAL;
1127 goto done;
1128 }
1129
1130 be_id = last_be_id_configured[fedai_id][session_type];
1131 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1132 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1133 ret = -EINVAL;
1134 goto done;
1135 }
1136
1137 *bedai_id = be_id;
1138 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1139 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1140 __func__, fedai_id, session_type, *bedai_id,
1141 cfg_data->app_type, cfg_data->acdb_dev_id,
1142 cfg_data->sample_rate);
1143done:
1144 return ret;
1145}
1146EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1147
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301148static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1149 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301150{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301151 struct list_head *ptr, *next;
1152 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301153 pr_debug("%s\n", __func__);
1154
1155 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301156 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301157
1158 cal_block = list_entry(ptr,
1159 struct cal_block_data, list);
1160
Vikram Panduranga770b8382017-09-27 12:17:36 -07001161 if (cal_utils_is_cal_stale(cal_block))
1162 continue;
1163
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301164 if (((struct audio_cal_info_adm_top *)cal_block
1165 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301166 return cal_block;
1167 }
1168 }
1169 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1170 return NULL;
1171}
1172
1173static struct cal_block_data *msm_routing_find_topology(int path,
1174 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301175 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001176 int cal_index,
1177 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301178{
1179 struct list_head *ptr, *next;
1180 struct cal_block_data *cal_block = NULL;
1181 struct audio_cal_info_adm_top *cal_info;
1182
1183 pr_debug("%s\n", __func__);
1184
1185 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301186 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301187
1188 cal_block = list_entry(ptr,
1189 struct cal_block_data, list);
1190
Vikram Panduranga770b8382017-09-27 12:17:36 -07001191 if (cal_utils_is_cal_stale(cal_block))
1192 continue;
1193
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301194 cal_info = (struct audio_cal_info_adm_top *)
1195 cal_block->cal_info;
1196 if ((cal_info->path == path) &&
1197 (cal_info->app_type == app_type) &&
1198 (cal_info->acdb_id == acdb_id)) {
1199 return cal_block;
1200 }
1201 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001202 pr_debug("%s: Can't find topology for path %d, app %d, "
1203 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1204 exact ? "fail" : "defaulting to search by path");
1205 return exact ? NULL : msm_routing_find_topology_by_path(path,
1206 cal_index);
1207}
1208
1209static int msm_routing_find_topology_on_index(int session_type, int app_type,
1210 int acdb_dev_id, int idx,
1211 bool exact)
1212{
1213 int topology = -EINVAL;
1214 struct cal_block_data *cal_block = NULL;
1215
1216 mutex_lock(&cal_data[idx]->lock);
1217 cal_block = msm_routing_find_topology(session_type, app_type,
1218 acdb_dev_id, idx, exact);
1219 if (cal_block != NULL) {
1220 topology = ((struct audio_cal_info_adm_top *)
1221 cal_block->cal_info)->topology;
1222 }
1223 mutex_unlock(&cal_data[idx]->lock);
1224 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301225}
1226
Vikram Panduranga770b8382017-09-27 12:17:36 -07001227/*
1228 * Retrieving cal_block will mark cal_block as stale.
1229 * Hence it cannot be reused or resent unless the flag
1230 * is reset.
1231 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301232static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1233 int be_id)
1234{
1235 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301236 int app_type = 0, acdb_dev_id = 0;
1237
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301238 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1239 __func__, fedai_id, session_type, be_id);
1240
1241 if (cal_data == NULL)
1242 goto done;
1243
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301244 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1245 acdb_dev_id =
1246 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1247
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001248 pr_debug("%s: Check for exact LSM topology\n", __func__);
1249 topology = msm_routing_find_topology_on_index(session_type,
1250 app_type,
1251 acdb_dev_id,
1252 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1253 true /*exact*/);
1254 if (topology < 0) {
1255 pr_debug("%s: Check for compatible topology\n", __func__);
1256 topology = msm_routing_find_topology_on_index(session_type,
1257 app_type,
1258 acdb_dev_id,
1259 ADM_TOPOLOGY_CAL_TYPE_IDX,
1260 false /*exact*/);
1261 if (topology < 0)
1262 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301263 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301264done:
1265 pr_debug("%s: Using topology %d\n", __func__, topology);
1266 return topology;
1267}
1268
1269static uint8_t is_be_dai_extproc(int be_dai)
1270{
1271 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1272 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1273 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1274 return 1;
1275 else
1276 return 0;
1277}
1278
1279static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1280 int path_type, int perf_mode,
1281 uint32_t passthr_mode)
1282{
1283 int i, port_type, j, num_copps = 0;
1284 struct route_payload payload;
1285
1286 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1287 path_type == ADM_PATH_COMPRESSED_RX) ?
1288 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1289
1290 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1291 if (!is_be_dai_extproc(i) &&
1292 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1293 (msm_bedais[i].active) &&
1294 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301295 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301296 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1297 unsigned long copp =
1298 session_copp_map[fedai_id][sess_type][i];
1299 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301300 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301301 payload.copp_idx[num_copps] = j;
1302 payload.app_type[num_copps] =
1303 fe_dai_app_type_cfg
1304 [fedai_id][sess_type][i]
1305 .app_type;
1306 payload.acdb_dev_id[num_copps] =
1307 fe_dai_app_type_cfg
1308 [fedai_id][sess_type][i]
1309 .acdb_dev_id;
1310 payload.sample_rate[num_copps] =
1311 fe_dai_app_type_cfg
1312 [fedai_id][sess_type][i]
1313 .sample_rate;
1314 num_copps++;
1315 }
1316 }
1317 }
1318 }
1319
1320 if (num_copps) {
1321 payload.num_copps = num_copps;
1322 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1323 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1324 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1325 }
1326}
1327
1328void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1329 int stream_type)
1330{
1331 int i, session_type, path_type, port_type;
1332 u32 mode = 0;
1333
1334 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1335 /* bad ID assigned in machine driver */
1336 pr_err("%s: bad MM ID\n", __func__);
1337 return;
1338 }
1339
1340 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1341 session_type = SESSION_TYPE_RX;
1342 path_type = ADM_PATH_PLAYBACK;
1343 port_type = MSM_AFE_PORT_TYPE_RX;
1344 } else {
1345 session_type = SESSION_TYPE_TX;
1346 path_type = ADM_PATH_LIVE_REC;
1347 port_type = MSM_AFE_PORT_TYPE_TX;
1348 }
1349
1350 mutex_lock(&routing_lock);
1351
1352 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1353 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1354 if (!is_be_dai_extproc(i) &&
1355 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1356 (msm_bedais[i].active) &&
1357 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1358 mode = afe_get_port_type(msm_bedais[i].port_id);
1359 adm_connect_afe_port(mode, dspst_id,
1360 msm_bedais[i].port_id);
1361 break;
1362 }
1363 }
1364 mutex_unlock(&routing_lock);
1365}
1366
1367static bool route_check_fe_id_adm_support(int fe_id)
1368{
1369 bool rc = true;
1370
1371 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1372 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1373 /* fe id is listen while port is set to afe */
1374 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1375 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1376 __func__, fe_id, lsm_port_index);
1377 rc = false;
1378 }
1379 }
1380
1381 return rc;
1382}
1383
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001384/*
1385 * msm_pcm_routing_get_pp_ch_cnt:
1386 * Read the processed channel count
1387 *
1388 * @fe_id: Front end ID
1389 * @session_type: Inidicates RX or TX session type
1390 */
1391int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1392{
1393 struct msm_pcm_stream_app_type_cfg cfg_data;
1394 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301395 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001396
1397 memset(&cfg_data, 0, sizeof(cfg_data));
1398
1399 if (!is_mm_lsm_fe_id(fe_id)) {
1400 pr_err("%s: bad MM ID\n", __func__);
1401 return -EINVAL;
1402 }
1403
1404 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1405 &be_id, &cfg_data);
1406 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301407 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001408 return ret;
1409 }
1410
1411 app_type = cfg_data.app_type;
1412 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1413 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1414}
1415EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1416
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301417int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1418 int dspst_id, int stream_type,
1419 uint32_t passthr_mode)
1420{
1421 int i, j, session_type, path_type, port_type, topology;
1422 int num_copps = 0;
1423 struct route_payload payload;
1424 u32 channels, sample_rate;
1425 u16 bit_width = 16;
1426 bool is_lsm;
1427
1428 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1429 __func__, fe_id, perf_mode, dspst_id,
1430 stream_type, passthr_mode);
1431 if (!is_mm_lsm_fe_id(fe_id)) {
1432 /* bad ID assigned in machine driver */
1433 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1434 return -EINVAL;
1435 }
1436
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1438 session_type = SESSION_TYPE_RX;
1439 if (passthr_mode != LEGACY_PCM)
1440 path_type = ADM_PATH_COMPRESSED_RX;
1441 else
1442 path_type = ADM_PATH_PLAYBACK;
1443 port_type = MSM_AFE_PORT_TYPE_RX;
1444 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1445 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301446 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301447 path_type = ADM_PATH_COMPRESSED_TX;
1448 else
1449 path_type = ADM_PATH_LIVE_REC;
1450 port_type = MSM_AFE_PORT_TYPE_TX;
1451 } else {
1452 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1453 return -EINVAL;
1454 }
1455
1456 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1457 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1458 mutex_lock(&routing_lock);
1459
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301460 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301461 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1462 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1463 if (!route_check_fe_id_adm_support(fe_id)) {
1464 /* ignore adm open if not supported for fe_id */
1465 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1466 mutex_unlock(&routing_lock);
1467 return 0;
1468 }
1469
1470 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301471 /* re-enable EQ if active */
1472 msm_qti_pp_send_eq_values(fe_id);
1473 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301474 if (!is_be_dai_extproc(i) &&
1475 (afe_get_port_type(msm_bedais[i].port_id) ==
1476 port_type) &&
1477 (msm_bedais[i].active) &&
1478 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1479 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301480 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301481
1482 /*
1483 * check if ADM needs to be configured with different
1484 * channel mapping than backend
1485 */
1486 if (!msm_bedais[i].adm_override_ch)
1487 channels = msm_bedais[i].channel;
1488 else
1489 channels = msm_bedais[i].adm_override_ch;
1490
1491 bit_width = msm_routing_get_bit_width(
1492 msm_bedais[i].format);
1493 app_type =
1494 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1495 if (app_type && is_lsm) {
1496 app_type_idx =
1497 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1498 sample_rate =
1499 fe_dai_app_type_cfg[fe_id][session_type][i]
1500 .sample_rate;
1501 bit_width =
1502 lsm_app_type_cfg[app_type_idx].bit_width;
1503 } else if (app_type) {
1504 app_type_idx =
1505 msm_pcm_routing_get_app_type_idx(
1506 app_type);
1507 sample_rate =
1508 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1509 bit_width =
1510 app_type_cfg[app_type_idx].bit_width;
1511 } else {
1512 sample_rate = msm_bedais[i].sample_rate;
1513 }
1514 acdb_dev_id =
1515 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1516 topology = msm_routing_get_adm_topology(fe_id,
1517 session_type,
1518 i);
1519 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1520 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001521 COMPRESSED_PASSTHROUGH_GEN)
1522 || (passthr_mode ==
1523 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301524 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1525 pr_debug("%s: Before adm open topology %d\n", __func__,
1526 topology);
1527
1528 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301529 adm_open(port_id, path_type, sample_rate,
1530 channels, topology, perf_mode,
1531 bit_width, app_type, acdb_dev_id,
1532 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301533 if ((copp_idx < 0) ||
1534 (copp_idx >= MAX_COPPS_PER_PORT)) {
1535 pr_err("%s:adm open failed coppid:%d\n",
1536 __func__, copp_idx);
1537 mutex_unlock(&routing_lock);
1538 return -EINVAL;
1539 }
1540 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1541 __func__, fe_id, session_type, i);
1542 set_bit(copp_idx,
1543 &session_copp_map[fe_id][session_type][i]);
1544
1545 if (msm_is_resample_needed(
1546 sample_rate,
1547 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301548 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301549 msm_bedais[i].sample_rate);
1550
1551 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1552 unsigned long copp =
1553 session_copp_map[fe_id][session_type][i];
1554 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301555 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301556 payload.copp_idx[num_copps] = j;
1557 payload.app_type[num_copps] =
1558 fe_dai_app_type_cfg
1559 [fe_id][session_type][i]
1560 .app_type;
1561 payload.acdb_dev_id[num_copps] =
1562 fe_dai_app_type_cfg
1563 [fe_id][session_type][i]
1564 .acdb_dev_id;
1565 payload.sample_rate[num_copps] =
1566 fe_dai_app_type_cfg
1567 [fe_id][session_type][i]
1568 .sample_rate;
1569 num_copps++;
1570 }
1571 }
1572 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001573 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301574 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301575 msm_routing_send_device_pp_params(port_id,
1576 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301577 }
1578 }
1579 if (num_copps) {
1580 payload.num_copps = num_copps;
1581 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1582 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1583 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1584 }
1585 mutex_unlock(&routing_lock);
1586 return 0;
1587}
1588
1589static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1590{
1591 u32 session_id;
1592
1593 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301594 case MSM_FRONTEND_DAI_QCHAT:
1595 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1596 break;
1597 case MSM_FRONTEND_DAI_VOIP:
1598 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1599 break;
1600 case MSM_FRONTEND_DAI_VOICEMMODE1:
1601 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1602 break;
1603 case MSM_FRONTEND_DAI_VOICEMMODE2:
1604 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1605 break;
1606 default:
1607 session_id = 0;
1608 }
1609
1610 pr_debug("%s session_id 0x%x", __func__, session_id);
1611 return session_id;
1612}
1613
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301614static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1615 int dspst_id, int stream_type)
1616{
1617 int copp_idx = 0;
1618 int sess_type = 0;
1619 int j = 0, be_id = 0;
1620 int ret = 0;
1621
1622 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1623 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1624 return 0;
1625 }
1626
1627 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1628 sess_type = SESSION_TYPE_RX;
1629 else
1630 sess_type = SESSION_TYPE_TX;
1631
1632 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1633 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1634 __func__, fe_id, sess_type);
1635 return 0;
1636 }
1637
1638 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1639 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1640 channel_mixer_v2[fe_id][sess_type].input_channel;
1641
1642 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1643 __func__, sess_type, fe_id,
1644 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1645 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1646 msm_bedais[be_id].active);
1647
1648 if ((msm_bedais[be_id].active) &&
1649 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1650 unsigned long copp =
1651 session_copp_map[fe_id][sess_type][be_id];
1652 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1653 if (test_bit(j, &copp)) {
1654 copp_idx = j;
1655 break;
1656 }
1657 }
1658
1659 ret = adm_programable_channel_mixer(
1660 msm_bedais[be_id].port_id,
1661 copp_idx, dspst_id, sess_type,
1662 &channel_mixer_v2[fe_id][sess_type], 0);
1663 }
1664
1665 return ret;
1666}
1667
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301668static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1669 int dspst_id, int stream_type)
1670{
1671 int copp_idx = 0;
1672 int sess_type = 0;
1673 int i = 0, j = 0, be_id;
1674 int ret = 0;
1675
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301676 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1677 dspst_id, stream_type);
1678 if (ret) {
1679 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1680 fe_id);
1681 return ret;
1682 }
1683
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301684 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1685 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1686 return 0;
1687 }
1688
1689 if (!(channel_mixer[fe_id].enable)) {
1690 pr_debug("%s: channel mixer not enabled for FE %d\n",
1691 __func__, fe_id);
1692 return 0;
1693 }
1694
1695 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1696 sess_type = SESSION_TYPE_RX;
1697 else
1698 sess_type = SESSION_TYPE_TX;
1699
1700 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1701 ++i) {
1702 be_id = channel_input[fe_id][i] - 1;
1703 channel_mixer[fe_id].input_channels[i] =
1704 msm_bedais[be_id].channel;
1705
1706 if ((msm_bedais[be_id].active) &&
1707 test_bit(fe_id,
1708 &msm_bedais[be_id].fe_sessions[0])) {
1709 unsigned long copp =
1710 session_copp_map[fe_id][sess_type][be_id];
1711 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1712 if (test_bit(j, &copp)) {
1713 copp_idx = j;
1714 break;
1715 }
1716 }
1717
1718 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1719 __func__,
1720 fe_id, be_id, msm_bedais[be_id].channel,
1721 copp_idx);
1722 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001723 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301724 copp_idx, dspst_id, sess_type,
1725 channel_mixer + fe_id, i);
1726 }
1727 }
1728
1729 return ret;
1730}
1731
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301732/**
1733 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1734 * setting during runtime.
1735 *
1736 * @be_id: backend index
1737 * @session_id: session index
1738 * @session_type: session type
1739 * @params: parameters for channel mixer
1740 *
1741 * Retuen: 0 for success, else error
1742 */
1743int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1744 int session_type,
1745 struct msm_pcm_channel_mixer *params)
1746{
1747 int rc = 0;
1748 int port_id, copp_idx = 0;
1749
1750 be_id--;
1751 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1752 pr_err("%s: invalid backend id %d\n", __func__,
1753 be_id);
1754 return -EINVAL;
1755 }
1756
1757 port_id = msm_bedais[be_id].port_id;
1758 copp_idx = adm_get_default_copp_idx(port_id);
1759 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1760 __func__, port_id, copp_idx, session_id);
1761
1762 if ((params->input_channel < 0) ||
1763 (params->input_channel > ADM_MAX_CHANNELS)) {
1764 pr_err("%s: invalid input channel %d\n", __func__,
1765 params->input_channel);
1766 return -EINVAL;
1767 }
1768
1769 if ((params->output_channel < 0) ||
1770 (params->output_channel > ADM_MAX_CHANNELS)) {
1771 pr_err("%s: invalid output channel %d\n", __func__,
1772 params->output_channel);
1773 return -EINVAL;
1774 }
1775
1776 params->input_channels[0] = params->input_channel;
1777
1778 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1779 __func__, session_type,
1780 params->override_in_ch_map,
1781 params->override_out_ch_map,
1782 msm_bedais[be_id].active);
1783
1784 rc = adm_programable_channel_mixer(port_id,
1785 copp_idx,
1786 session_id,
1787 session_type,
1788 params,
1789 0);
1790 if (rc) {
1791 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1792 rc = -EINVAL;
1793 }
1794 return rc;
1795}
1796EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301798int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1799 int dspst_id, int stream_type)
1800{
1801 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1802 struct route_payload payload;
1803 u32 channels, sample_rate;
1804 uint16_t bits_per_sample = 16;
1805 uint32_t passthr_mode = LEGACY_PCM;
1806 int ret = 0;
1807
1808 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1809 /* bad ID assigned in machine driver */
1810 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1811 return -EINVAL;
1812 }
1813
1814 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1815 session_type = SESSION_TYPE_RX;
1816 path_type = ADM_PATH_PLAYBACK;
1817 port_type = MSM_AFE_PORT_TYPE_RX;
1818 } else {
1819 session_type = SESSION_TYPE_TX;
1820 path_type = ADM_PATH_LIVE_REC;
1821 port_type = MSM_AFE_PORT_TYPE_TX;
1822 }
1823
1824 mutex_lock(&routing_lock);
1825
1826 payload.num_copps = 0; /* only RX needs to use payload */
1827 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1828 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301829 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301830
1831 /* re-enable EQ if active */
1832 msm_qti_pp_send_eq_values(fedai_id);
1833 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1834 if (!is_be_dai_extproc(i) &&
1835 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1836 (msm_bedais[i].active) &&
1837 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1838 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301839 int port_id = get_port_id(msm_bedais[i].port_id);
1840
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301841 /*
1842 * check if ADM needs to be configured with different
1843 * channel mapping than backend
1844 */
1845 if (!msm_bedais[i].adm_override_ch)
1846 channels = msm_bedais[i].channel;
1847 else
1848 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301849
1850 bits_per_sample = msm_routing_get_bit_width(
1851 msm_bedais[i].format);
1852
1853 app_type =
1854 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1855 if (app_type) {
1856 app_type_idx =
1857 msm_pcm_routing_get_app_type_idx(app_type);
1858 sample_rate =
1859 fe_dai_app_type_cfg[fedai_id][session_type][i]
1860 .sample_rate;
1861 bits_per_sample =
1862 app_type_cfg[app_type_idx].bit_width;
1863 } else
1864 sample_rate = msm_bedais[i].sample_rate;
1865
1866 acdb_dev_id =
1867 fe_dai_app_type_cfg[fedai_id][session_type][i]
1868 .acdb_dev_id;
1869 topology = msm_routing_get_adm_topology(fedai_id,
1870 session_type,
1871 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301872 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301873 sample_rate, channels, topology,
1874 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301875 app_type, acdb_dev_id,
1876 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301877 if ((copp_idx < 0) ||
1878 (copp_idx >= MAX_COPPS_PER_PORT)) {
1879 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001880 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301881 mutex_unlock(&routing_lock);
1882 return -EINVAL;
1883 }
1884 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1885 __func__, fedai_id, session_type, i);
1886 set_bit(copp_idx,
1887 &session_copp_map[fedai_id][session_type][i]);
1888
1889 if (msm_is_resample_needed(
1890 sample_rate,
1891 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301892 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301893 msm_bedais[i].sample_rate);
1894
1895 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1896 unsigned long copp =
1897 session_copp_map[fedai_id][session_type][i];
1898 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301899 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301900 payload.copp_idx[num_copps] = j;
1901 payload.app_type[num_copps] =
1902 fe_dai_app_type_cfg
1903 [fedai_id][session_type]
1904 [i].app_type;
1905 payload.acdb_dev_id[num_copps] =
1906 fe_dai_app_type_cfg
1907 [fedai_id][session_type]
1908 [i].acdb_dev_id;
1909 payload.sample_rate[num_copps] =
1910 fe_dai_app_type_cfg
1911 [fedai_id][session_type]
1912 [i].sample_rate;
1913 num_copps++;
1914 }
1915 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301916 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301917 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1918 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 }
1920 }
1921 if (num_copps) {
1922 payload.num_copps = num_copps;
1923 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1924 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1925 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1926 }
1927
1928 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1929 dspst_id, stream_type);
1930 mutex_unlock(&routing_lock);
1931 return ret;
1932}
1933
1934int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1935 int dspst_id, int stream_type,
1936 struct msm_pcm_routing_evt event_info)
1937{
1938 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1939 stream_type)) {
1940 pr_err("%s: failed to reg phy stream\n", __func__);
1941 return -EINVAL;
1942 }
1943
1944 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1945 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1946 else
1947 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1948 return 0;
1949}
1950
1951void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1952{
Surendar Karkae7507512018-07-20 15:46:54 +05301953 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301954 struct msm_pcm_routing_fdai_data *fdai;
1955
1956 if (!is_mm_lsm_fe_id(fedai_id)) {
1957 /* bad ID assigned in machine driver */
1958 pr_err("%s: bad MM ID\n", __func__);
1959 return;
1960 }
1961
1962 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1963 port_type = MSM_AFE_PORT_TYPE_RX;
1964 session_type = SESSION_TYPE_RX;
1965 path_type = ADM_PATH_PLAYBACK;
1966 } else {
1967 port_type = MSM_AFE_PORT_TYPE_TX;
1968 session_type = SESSION_TYPE_TX;
1969 path_type = ADM_PATH_LIVE_REC;
1970 }
1971
1972 mutex_lock(&routing_lock);
1973 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1974 if (!is_be_dai_extproc(i) &&
1975 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1976 (msm_bedais[i].active) &&
1977 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1978 int idx;
1979 unsigned long copp =
1980 session_copp_map[fedai_id][session_type][i];
1981 fdai = &fe_dai_map[fedai_id][session_type];
1982
1983 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1984 if (test_bit(idx, &copp))
1985 break;
1986
1987 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1988 pr_debug("%s: copp idx is invalid, exiting\n",
1989 __func__);
1990 continue;
1991 }
Surendar Karkae7507512018-07-20 15:46:54 +05301992 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301993 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301994 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001995 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301996 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301997 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1998 __func__, copp, fedai_id, session_type, i);
1999 clear_bit(idx,
2000 &session_copp_map[fedai_id][session_type][i]);
2001 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2002 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2003 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302004 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302005 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302006 }
2007 }
2008
2009 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2010 fe_dai_map[fedai_id][session_type].be_srate = 0;
2011 mutex_unlock(&routing_lock);
2012}
2013
2014/* Check if FE/BE route is set */
2015static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2016{
2017 bool rc = false;
2018
2019 if (!is_mm_lsm_fe_id(fe_id)) {
2020 /* recheck FE ID in the mixer control defined in this file */
2021 pr_err("%s: bad MM ID\n", __func__);
2022 return rc;
2023 }
2024
2025 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2026 rc = true;
2027
2028 return rc;
2029}
2030
2031static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2032{
2033 int session_type, path_type, topology;
2034 u32 channels, sample_rate;
2035 uint16_t bits_per_sample = 16;
2036 struct msm_pcm_routing_fdai_data *fdai;
2037 uint32_t passthr_mode;
2038 bool is_lsm;
2039
2040 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2041
2042 if (!is_mm_lsm_fe_id(val)) {
2043 /* recheck FE ID in the mixer control defined in this file */
2044 pr_err("%s: bad MM ID\n", __func__);
2045 return;
2046 }
2047
2048 if (!route_check_fe_id_adm_support(val)) {
2049 /* ignore adm open if not supported for fe_id */
2050 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002051 if (set)
2052 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2053 else
2054 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302055 return;
2056 }
2057
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302058 session_type =
2059 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2060 SESSION_TYPE_RX : SESSION_TYPE_TX;
2061 fdai = &fe_dai_map[val][session_type];
2062 passthr_mode = fdai->passthr_mode;
2063 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302064 if (passthr_mode != LEGACY_PCM)
2065 path_type = ADM_PATH_COMPRESSED_RX;
2066 else
2067 path_type = ADM_PATH_PLAYBACK;
2068 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002069 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302070 path_type = ADM_PATH_COMPRESSED_TX;
2071 else
2072 path_type = ADM_PATH_LIVE_REC;
2073 }
2074 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2075 (val <= MSM_FRONTEND_DAI_LSM8);
2076
2077 mutex_lock(&routing_lock);
2078 if (set) {
2079 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2080 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2081 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2082 voc_start_playback(set, msm_bedais[reg].port_id);
2083
2084 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302085 if (msm_bedais[reg].active && fdai->strm_id !=
2086 INVALID_SESSION) {
2087 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302088 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302089 /*
2090 * check if ADM needs to be configured with different
2091 * channel mapping than backend
2092 */
2093 if (!msm_bedais[reg].adm_override_ch)
2094 channels = msm_bedais[reg].channel;
2095 else
2096 channels = msm_bedais[reg].adm_override_ch;
2097 if (session_type == SESSION_TYPE_TX &&
2098 fdai->be_srate &&
2099 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2100 pr_debug("%s: flush strm %d diff BE rates\n",
2101 __func__, fdai->strm_id);
2102
2103 if (fdai->event_info.event_func)
2104 fdai->event_info.event_func(
2105 MSM_PCM_RT_EVT_BUF_RECFG,
2106 fdai->event_info.priv_data);
2107 fdai->be_srate = 0; /* might not need it */
2108 }
2109
2110 bits_per_sample = msm_routing_get_bit_width(
2111 msm_bedais[reg].format);
2112
2113 app_type =
2114 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2115 if (app_type && is_lsm) {
2116 app_type_idx =
2117 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2118 sample_rate =
2119 fe_dai_app_type_cfg[val][session_type][reg]
2120 .sample_rate;
2121 bits_per_sample =
2122 lsm_app_type_cfg[app_type_idx].bit_width;
2123 } else if (app_type) {
2124 app_type_idx =
2125 msm_pcm_routing_get_app_type_idx(app_type);
2126 sample_rate =
2127 fe_dai_app_type_cfg[val][session_type][reg]
2128 .sample_rate;
2129 bits_per_sample =
2130 app_type_cfg[app_type_idx].bit_width;
2131 } else
2132 sample_rate = msm_bedais[reg].sample_rate;
2133
2134 topology = msm_routing_get_adm_topology(val,
2135 session_type,
2136 reg);
2137 acdb_dev_id =
2138 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302139 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 sample_rate, channels, topology,
2141 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302142 app_type, acdb_dev_id,
2143 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302144 if ((copp_idx < 0) ||
2145 (copp_idx >= MAX_COPPS_PER_PORT)) {
2146 pr_err("%s: adm open failed\n", __func__);
2147 mutex_unlock(&routing_lock);
2148 return;
2149 }
2150 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2151 __func__, val, session_type, reg);
2152 set_bit(copp_idx,
2153 &session_copp_map[val][session_type][reg]);
2154
2155 if (msm_is_resample_needed(
2156 sample_rate,
2157 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302158 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302159 msm_bedais[reg].sample_rate);
2160
2161 if (session_type == SESSION_TYPE_RX &&
2162 fdai->event_info.event_func)
2163 fdai->event_info.event_func(
2164 MSM_PCM_RT_EVT_DEVSWITCH,
2165 fdai->event_info.priv_data);
2166
2167 msm_pcm_routing_build_matrix(val, session_type,
2168 path_type,
2169 fdai->perf_mode,
2170 passthr_mode);
2171 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2172 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302173 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2174 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302175 }
2176 } else {
2177 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2178 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2179 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2180 voc_start_playback(set, msm_bedais[reg].port_id);
2181 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302182 if (msm_bedais[reg].active && fdai->strm_id !=
2183 INVALID_SESSION) {
2184 int idx;
2185 int port_id;
2186 unsigned long copp =
2187 session_copp_map[val][session_type][reg];
2188 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2189 if (test_bit(idx, &copp))
2190 break;
2191
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002192 if (idx >= MAX_COPPS_PER_PORT) {
2193 pr_debug("%s: copp idx is invalid, exiting\n",
2194 __func__);
2195 mutex_unlock(&routing_lock);
2196 return;
2197 }
Surendar Karkae7507512018-07-20 15:46:54 +05302198 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302199 topology = adm_get_topology_for_port_copp_idx(port_id,
2200 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002201 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302202 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302203 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2204 __func__, copp, val, session_type, reg,
2205 topology);
2206 clear_bit(idx,
2207 &session_copp_map[val][session_type][reg]);
2208 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2209 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2210 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2211 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302212 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302213 msm_pcm_routing_build_matrix(val, session_type,
2214 path_type,
2215 fdai->perf_mode,
2216 passthr_mode);
2217 }
2218 }
2219 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2220 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2221 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2222
2223 mutex_unlock(&routing_lock);
2224}
2225
2226static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2227 struct snd_ctl_elem_value *ucontrol)
2228{
2229 struct soc_mixer_control *mc =
2230 (struct soc_mixer_control *)kcontrol->private_value;
2231
Meng Wang05d5e9a2018-03-28 16:45:03 +08002232 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302233 ucontrol->value.integer.value[0] = 1;
2234 else
2235 ucontrol->value.integer.value[0] = 0;
2236
Meng Wang05d5e9a2018-03-28 16:45:03 +08002237 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302238 ucontrol->value.integer.value[0]);
2239
2240 return 0;
2241}
2242
2243static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2244 struct snd_ctl_elem_value *ucontrol)
2245{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302246 struct snd_soc_dapm_widget *widget =
2247 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302248 struct soc_mixer_control *mc =
2249 (struct soc_mixer_control *)kcontrol->private_value;
2250 struct snd_soc_dapm_update *update = NULL;
2251
2252 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002253 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2254 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302255 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2256 update);
2257 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002258 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2259 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302260 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2261 update);
2262 }
2263
2264 return 1;
2265}
2266
2267static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2268 struct snd_ctl_elem_value *ucontrol)
2269{
2270 struct soc_mixer_control *mc =
2271 (struct soc_mixer_control *)kcontrol->private_value;
2272
Meng Wang05d5e9a2018-03-28 16:45:03 +08002273 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302274 ucontrol->value.integer.value[0] = 1;
2275 else
2276 ucontrol->value.integer.value[0] = 0;
2277
Meng Wang05d5e9a2018-03-28 16:45:03 +08002278 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302279 ucontrol->value.integer.value[0]);
2280
2281 return 0;
2282}
2283
2284static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2285 struct snd_ctl_elem_value *ucontrol)
2286{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302287 struct snd_soc_dapm_widget *widget =
2288 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289 struct soc_mixer_control *mc =
2290 (struct soc_mixer_control *)kcontrol->private_value;
2291 struct snd_soc_dapm_update *update = NULL;
2292
Meng Wang05d5e9a2018-03-28 16:45:03 +08002293 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302294 ucontrol->value.integer.value[0]);
2295
2296 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002297 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2298 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302299 snd_soc_dapm_mixer_update_power(widget->dapm,
2300 kcontrol, 1, update);
2301 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002302 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2303 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302304 snd_soc_dapm_mixer_update_power(widget->dapm,
2305 kcontrol, 0, update);
2306 }
2307
2308 return 1;
2309}
2310
2311static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2312{
2313 u32 session_id = 0;
2314 u16 path_type;
2315 struct media_format_info voc_be_media_format;
2316
2317 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2318
2319 session_id = msm_pcm_routing_get_voc_sessionid(val);
2320
2321 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2322 __func__, val, session_id);
2323
2324 mutex_lock(&routing_lock);
2325
2326 if (set)
2327 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2328 else
2329 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2330
2331 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2332 afe_get_port_type(msm_bedais[reg].port_id) ==
2333 MSM_AFE_PORT_TYPE_RX) {
2334 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2335 __func__, set, msm_bedais[reg].port_id);
2336 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2337 }
2338
2339 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2340 MSM_AFE_PORT_TYPE_RX)
2341 path_type = RX_PATH;
2342 else
2343 path_type = TX_PATH;
2344
2345 if (set) {
2346 if (msm_bedais[reg].active) {
2347 voc_set_route_flag(session_id, path_type, 1);
2348
2349 memset(&voc_be_media_format, 0,
2350 sizeof(struct media_format_info));
2351
2352 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2353 voc_be_media_format.num_channels =
2354 msm_bedais[reg].channel;
2355 voc_be_media_format.sample_rate =
2356 msm_bedais[reg].sample_rate;
2357 voc_be_media_format.bits_per_sample =
2358 msm_bedais[reg].format;
2359 /* Defaulting this to 1 for voice call usecases */
2360 voc_be_media_format.channel_mapping[0] = 1;
2361
2362 voc_set_device_config(session_id, path_type,
2363 &voc_be_media_format);
2364
2365 if (voc_get_route_flag(session_id, TX_PATH) &&
2366 voc_get_route_flag(session_id, RX_PATH))
2367 voc_enable_device(session_id);
2368 } else {
2369 pr_debug("%s BE is not active\n", __func__);
2370 }
2371 } else {
2372 voc_set_route_flag(session_id, path_type, 0);
2373 voc_disable_device(session_id);
2374 }
2375
2376 mutex_unlock(&routing_lock);
2377
2378}
2379
2380static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2381 struct snd_ctl_elem_value *ucontrol)
2382{
2383 struct soc_mixer_control *mc =
2384 (struct soc_mixer_control *)kcontrol->private_value;
2385
2386 mutex_lock(&routing_lock);
2387
Meng Wang05d5e9a2018-03-28 16:45:03 +08002388 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302389 ucontrol->value.integer.value[0] = 1;
2390 else
2391 ucontrol->value.integer.value[0] = 0;
2392
2393 mutex_unlock(&routing_lock);
2394
Meng Wang05d5e9a2018-03-28 16:45:03 +08002395 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302396 ucontrol->value.integer.value[0]);
2397
2398 return 0;
2399}
2400
2401static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2402 struct snd_ctl_elem_value *ucontrol)
2403{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302404 struct snd_soc_dapm_widget *widget =
2405 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302406 struct soc_mixer_control *mc =
2407 (struct soc_mixer_control *)kcontrol->private_value;
2408 struct snd_soc_dapm_update *update = NULL;
2409
2410 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002411 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302412 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2413 update);
2414 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002415 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302416 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2417 update);
2418 }
2419
2420 return 1;
2421}
2422
2423static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2424 struct snd_ctl_elem_value *ucontrol)
2425{
2426 struct soc_mixer_control *mc =
2427 (struct soc_mixer_control *)kcontrol->private_value;
2428
2429 mutex_lock(&routing_lock);
2430
Meng Wang05d5e9a2018-03-28 16:45:03 +08002431 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302432 ucontrol->value.integer.value[0] = 1;
2433 else
2434 ucontrol->value.integer.value[0] = 0;
2435
2436 mutex_unlock(&routing_lock);
2437
Meng Wang05d5e9a2018-03-28 16:45:03 +08002438 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302439 ucontrol->value.integer.value[0]);
2440
2441 return 0;
2442}
2443
2444static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2445 struct snd_ctl_elem_value *ucontrol)
2446{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302447 struct snd_soc_dapm_widget *widget =
2448 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 struct soc_mixer_control *mc =
2450 (struct soc_mixer_control *)kcontrol->private_value;
2451 struct snd_soc_dapm_update *update = NULL;
2452
2453 if (ucontrol->value.integer.value[0]) {
2454 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002455 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302456 mutex_unlock(&routing_lock);
2457
2458 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2459 update);
2460 } else {
2461 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002462 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302463 mutex_unlock(&routing_lock);
2464
2465 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2466 update);
2467 }
2468
Meng Wang05d5e9a2018-03-28 16:45:03 +08002469 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302470 ucontrol->value.integer.value[0]);
2471
2472 return 1;
2473}
2474
2475/*
2476 * Return the mapping between port ID and backend ID to enable the AFE callback
2477 * to determine the acdb_dev_id from the port id
2478 */
2479int msm_pcm_get_be_id_from_port_id(int port_id)
2480{
2481 int i;
2482 int be_id = -EINVAL;
2483
2484 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2485 if (msm_bedais[i].port_id == port_id) {
2486 be_id = i;
2487 break;
2488 }
2489 }
2490
2491 return be_id;
2492}
2493
2494/*
2495 * Return the registered dev_acdb_id given a port ID to enable identifying the
2496 * correct AFE calibration information by comparing the header information.
2497 */
2498static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2499{
2500 int acdb_id = -EINVAL;
2501 int i = 0;
2502 int session;
2503 int port_type = afe_get_port_type(port_id);
2504 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2505
2506 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2507 __func__, port_id, be_id, port_type);
2508
2509 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2510 session = SESSION_TYPE_TX;
2511 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2512 session = SESSION_TYPE_RX;
2513 } else {
2514 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2515 acdb_id = -EINVAL;
2516 goto exit;
2517 }
2518
2519 if (be_id < 0) {
2520 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2521 goto exit;
2522 }
2523
2524 mutex_lock(&routing_lock);
2525 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2526 MSM_FRONTEND_DAI_MAX);
2527 if (i < MSM_FRONTEND_DAI_MAX)
2528 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2529
2530 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2531 __func__, i, session, be_id, acdb_id);
2532 mutex_unlock(&routing_lock);
2533exit:
2534 return acdb_id;
2535}
2536
2537static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2538 struct snd_ctl_elem_value *ucontrol)
2539{
2540 ucontrol->value.integer.value[0] = fm_switch_enable;
2541 pr_debug("%s: FM Switch enable %ld\n", __func__,
2542 ucontrol->value.integer.value[0]);
2543 return 0;
2544}
2545
2546static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2547 struct snd_ctl_elem_value *ucontrol)
2548{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302549 struct snd_soc_dapm_widget *widget =
2550 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302551 struct snd_soc_dapm_update *update = NULL;
2552
2553 pr_debug("%s: FM Switch enable %ld\n", __func__,
2554 ucontrol->value.integer.value[0]);
2555 if (ucontrol->value.integer.value[0])
2556 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2557 update);
2558 else
2559 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2560 update);
2561 fm_switch_enable = ucontrol->value.integer.value[0];
2562 return 1;
2563}
2564
2565static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2566 struct snd_ctl_elem_value *ucontrol)
2567{
2568 ucontrol->value.integer.value[0] = hfp_switch_enable;
2569 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2570 ucontrol->value.integer.value[0]);
2571 return 0;
2572}
2573
2574static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2575 struct snd_ctl_elem_value *ucontrol)
2576{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302577 struct snd_soc_dapm_widget *widget =
2578 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302579 struct snd_soc_dapm_update *update = NULL;
2580
2581 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2582 ucontrol->value.integer.value[0]);
2583 if (ucontrol->value.integer.value[0])
2584 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2585 1, update);
2586 else
2587 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2588 0, update);
2589 hfp_switch_enable = ucontrol->value.integer.value[0];
2590 return 1;
2591}
2592
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002593static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2594 struct snd_ctl_elem_value *ucontrol)
2595{
2596 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2597 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2598 ucontrol->value.integer.value[0]);
2599 return 0;
2600}
2601
2602static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2603 struct snd_ctl_elem_value *ucontrol)
2604{
2605 struct snd_soc_dapm_widget *widget =
2606 snd_soc_dapm_kcontrol_widget(kcontrol);
2607 struct snd_soc_dapm_update *update = NULL;
2608
2609 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2610 ucontrol->value.integer.value[0]);
2611 a2dp_switch_enable = ucontrol->value.integer.value[0];
2612 if (a2dp_switch_enable)
2613 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2614 1, update);
2615 else
2616 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2617 0, update);
2618 return 1;
2619}
2620
Zhou Songcaa541d2019-02-19 18:37:47 +08002621static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2622 struct snd_ctl_elem_value *ucontrol)
2623{
2624 ucontrol->value.integer.value[0] = sco_switch_enable;
2625 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2626 ucontrol->value.integer.value[0]);
2627 return 0;
2628}
2629
2630static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2631 struct snd_ctl_elem_value *ucontrol)
2632{
2633 struct snd_soc_dapm_widget *widget =
2634 snd_soc_dapm_kcontrol_widget(kcontrol);
2635 struct snd_soc_dapm_update *update = NULL;
2636
2637 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2638 ucontrol->value.integer.value[0]);
2639 sco_switch_enable = ucontrol->value.integer.value[0];
2640 if (sco_switch_enable)
2641 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2642 1, update);
2643 else
2644 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2645 0, update);
2646 return 1;
2647}
2648
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302649static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2650 struct snd_ctl_elem_value *ucontrol)
2651{
2652 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2653 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2654 ucontrol->value.integer.value[0]);
2655 return 0;
2656}
2657
2658static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2659 struct snd_ctl_elem_value *ucontrol)
2660{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302661 struct snd_soc_dapm_widget *widget =
2662 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302663 struct snd_soc_dapm_update *update = NULL;
2664
2665 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2666 ucontrol->value.integer.value[0]);
2667 if (ucontrol->value.integer.value[0])
2668 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2669 update);
2670 else
2671 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2672 update);
2673 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2674 return 1;
2675}
2676
2677static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2678 struct snd_ctl_elem_value *ucontrol)
2679{
2680 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2681 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2682 ucontrol->value.integer.value[0]);
2683 return 0;
2684}
2685
2686static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2687 struct snd_ctl_elem_value *ucontrol)
2688{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302689 struct snd_soc_dapm_widget *widget =
2690 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302691 struct snd_soc_dapm_update *update = NULL;
2692
2693 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2694 ucontrol->value.integer.value[0]);
2695 if (ucontrol->value.integer.value[0])
2696 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2697 update);
2698 else
2699 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2700 update);
2701 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2702 return 1;
2703}
2704
2705static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2706 struct snd_ctl_elem_value *ucontrol)
2707{
2708 ucontrol->value.integer.value[0] = usb_switch_enable;
2709 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2710 ucontrol->value.integer.value[0]);
2711 return 0;
2712}
2713
2714static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2715 struct snd_ctl_elem_value *ucontrol)
2716{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302717 struct snd_soc_dapm_widget *widget =
2718 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302719 struct snd_soc_dapm_update *update = NULL;
2720
2721 pr_debug("%s: USB Switch enable %ld\n", __func__,
2722 ucontrol->value.integer.value[0]);
2723 if (ucontrol->value.integer.value[0])
2724 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2725 1, update);
2726 else
2727 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2728 0, update);
2729 usb_switch_enable = ucontrol->value.integer.value[0];
2730 return 1;
2731}
2732
2733static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2734 struct snd_ctl_elem_value *ucontrol)
2735{
2736 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2737 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2738 ucontrol->value.integer.value[0]);
2739 return 0;
2740}
2741
2742static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2743 struct snd_ctl_elem_value *ucontrol)
2744{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302745 struct snd_soc_dapm_widget *widget =
2746 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302747 struct snd_soc_dapm_update *update = NULL;
2748
2749 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2750 ucontrol->value.integer.value[0]);
2751 if (ucontrol->value.integer.value[0])
2752 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2753 update);
2754 else
2755 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2756 update);
2757 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2758 return 1;
2759}
2760
2761static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2762 struct snd_ctl_elem_value *ucontrol)
2763{
2764 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2765 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2766 ucontrol->value.integer.value[0]);
2767 return 0;
2768}
2769
2770static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2771 struct snd_ctl_elem_value *ucontrol)
2772{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302773 struct snd_soc_dapm_widget *widget =
2774 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302775 struct snd_soc_dapm_update *update = NULL;
2776
2777 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2778 ucontrol->value.integer.value[0]);
2779 if (ucontrol->value.integer.value[0])
2780 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2781 update);
2782 else
2783 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2784 update);
2785 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2786 return 1;
2787}
2788
2789static int msm_routing_get_tert_mi2s_switch_mixer(
2790 struct snd_kcontrol *kcontrol,
2791 struct snd_ctl_elem_value *ucontrol)
2792{
2793 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2794 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2795 ucontrol->value.integer.value[0]);
2796 return 0;
2797}
2798
2799static int msm_routing_put_tert_mi2s_switch_mixer(
2800 struct snd_kcontrol *kcontrol,
2801 struct snd_ctl_elem_value *ucontrol)
2802{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302803 struct snd_soc_dapm_widget *widget =
2804 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302805 struct snd_soc_dapm_update *update = NULL;
2806
2807 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2808 ucontrol->value.integer.value[0]);
2809 if (ucontrol->value.integer.value[0])
2810 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2811 update);
2812 else
2813 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2814 update);
2815 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2816 return 1;
2817}
2818
2819static int msm_routing_get_quat_mi2s_switch_mixer(
2820 struct snd_kcontrol *kcontrol,
2821 struct snd_ctl_elem_value *ucontrol)
2822{
2823 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2824 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2825 ucontrol->value.integer.value[0]);
2826 return 0;
2827}
2828
2829static int msm_routing_put_quat_mi2s_switch_mixer(
2830 struct snd_kcontrol *kcontrol,
2831 struct snd_ctl_elem_value *ucontrol)
2832{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302833 struct snd_soc_dapm_widget *widget =
2834 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302835 struct snd_soc_dapm_update *update = NULL;
2836
2837 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2838 ucontrol->value.integer.value[0]);
2839 if (ucontrol->value.integer.value[0])
2840 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2841 update);
2842 else
2843 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2844 update);
2845 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2846 return 1;
2847}
2848
Rohit Kumara5077932017-09-10 22:05:05 +05302849static int msm_routing_get_quin_mi2s_switch_mixer(
2850 struct snd_kcontrol *kcontrol,
2851 struct snd_ctl_elem_value *ucontrol)
2852{
2853 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2854 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2855 ucontrol->value.integer.value[0]);
2856 return 0;
2857}
2858
2859static int msm_routing_put_quin_mi2s_switch_mixer(
2860 struct snd_kcontrol *kcontrol,
2861 struct snd_ctl_elem_value *ucontrol)
2862{
2863 struct snd_soc_dapm_widget *widget =
2864 snd_soc_dapm_kcontrol_widget(kcontrol);
2865 struct snd_soc_dapm_update *update = NULL;
2866
2867 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2868 ucontrol->value.integer.value[0]);
2869 if (ucontrol->value.integer.value[0])
2870 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2871 update);
2872 else
2873 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2874 update);
2875 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2876 return 1;
2877}
2878
Karthikeyan Manic3700752019-03-11 18:33:53 -07002879static int msm_routing_get_sen_mi2s_switch_mixer(
2880 struct snd_kcontrol *kcontrol,
2881 struct snd_ctl_elem_value *ucontrol)
2882{
2883 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2884 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2885 ucontrol->value.integer.value[0]);
2886 return 0;
2887}
2888
2889static int msm_routing_put_sen_mi2s_switch_mixer(
2890 struct snd_kcontrol *kcontrol,
2891 struct snd_ctl_elem_value *ucontrol)
2892{
2893 struct snd_soc_dapm_widget *widget =
2894 snd_soc_dapm_kcontrol_widget(kcontrol);
2895 struct snd_soc_dapm_update *update = NULL;
2896
2897 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2898 ucontrol->value.integer.value[0]);
2899 if (ucontrol->value.integer.value[0])
2900 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2901 update);
2902 else
2903 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2904 update);
2905 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2906 return 1;
2907}
2908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302909static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2910 struct snd_ctl_elem_value *ucontrol)
2911{
2912 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2913 pr_debug("%s: FM Switch enable %ld\n", __func__,
2914 ucontrol->value.integer.value[0]);
2915 return 0;
2916}
2917
2918static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2919 struct snd_ctl_elem_value *ucontrol)
2920{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302921 struct snd_soc_dapm_widget *widget =
2922 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302923 struct snd_soc_dapm_update *update = NULL;
2924
2925 pr_debug("%s: FM Switch enable %ld\n", __func__,
2926 ucontrol->value.integer.value[0]);
2927 if (ucontrol->value.integer.value[0])
2928 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2929 update);
2930 else
2931 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2932 update);
2933 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2934 return 1;
2935}
2936
2937static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2938 struct snd_ctl_elem_value *ucontrol)
2939{
2940 ucontrol->value.integer.value[0] = lsm_port_index;
2941 return 0;
2942}
2943
2944static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2945 struct snd_ctl_elem_value *ucontrol)
2946{
2947 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2948 int mux = ucontrol->value.enumerated.item[0];
2949 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2950
2951 if (mux >= e->items) {
2952 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2953 return -EINVAL;
2954 }
2955
2956 pr_debug("%s: LSM enable %ld\n", __func__,
2957 ucontrol->value.integer.value[0]);
2958 switch (ucontrol->value.integer.value[0]) {
2959 case 1:
2960 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2961 break;
2962 case 2:
2963 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2964 break;
2965 case 3:
2966 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2967 break;
2968 case 4:
2969 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2970 break;
2971 case 5:
2972 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2973 break;
2974 case 6:
2975 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2976 break;
2977 case 7:
2978 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2979 break;
2980 case 8:
2981 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2982 break;
2983 case 9:
2984 lsm_port = ADM_LSM_PORT_ID;
2985 break;
2986 case 10:
2987 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2988 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302989 case 11:
2990 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2991 break;
2992 case 12:
2993 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2994 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302995 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002996 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302997 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302998 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002999 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3000 break;
3001 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303002 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3003 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303004 default:
3005 pr_err("Default lsm port");
3006 break;
3007 }
3008 set_lsm_port(lsm_port);
3009 lsm_port_index = ucontrol->value.integer.value[0];
3010
3011 return 0;
3012}
3013
3014static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3015 struct snd_ctl_elem_value *ucontrol)
3016{
3017 int i;
3018 u16 port_id;
3019 enum afe_mad_type mad_type;
3020
3021 pr_debug("%s: enter\n", __func__);
3022 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3023 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3024 strlen(lsm_port_text[i])))
3025 break;
3026
3027 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003028 pr_warn("%s: Invalid id name %s\n", __func__,
3029 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303030 return -EINVAL;
3031 }
3032
3033 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3034
3035 /*Check for Tertiary/Quaternary/INT3 TX port*/
3036 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3037 strlen(lsm_port_text[7])))
3038 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3039
3040 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3041 strlen(lsm_port_text[8])))
3042 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3043
3044 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3045 strlen(lsm_port_text[10])))
3046 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3047
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303048 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3049 strlen(lsm_port_text[13])))
3050 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3051
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303052 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3053 strlen(lsm_port_text[14])))
3054 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303056 mad_type = afe_port_get_mad_type(port_id);
3057 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3058 mad_type);
3059 switch (mad_type) {
3060 case MAD_HW_NONE:
3061 ucontrol->value.integer.value[0] = MADNONE;
3062 break;
3063 case MAD_HW_AUDIO:
3064 ucontrol->value.integer.value[0] = MADAUDIO;
3065 break;
3066 case MAD_HW_BEACON:
3067 ucontrol->value.integer.value[0] = MADBEACON;
3068 break;
3069 case MAD_HW_ULTRASOUND:
3070 ucontrol->value.integer.value[0] = MADULTRASOUND;
3071 break;
3072 case MAD_SW_AUDIO:
3073 ucontrol->value.integer.value[0] = MADSWAUDIO;
3074 break;
3075 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003076 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077 return -EINVAL;
3078 }
3079 return 0;
3080}
3081
3082static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3083 struct snd_ctl_elem_value *ucontrol)
3084{
3085 int i;
3086 u16 port_id;
3087 enum afe_mad_type mad_type;
3088
3089 pr_debug("%s: enter\n", __func__);
3090 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3091 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3092 strlen(lsm_port_text[i])))
3093 break;
3094
3095 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003096 pr_warn("%s: Invalid id name %s\n", __func__,
3097 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303098 return -EINVAL;
3099 }
3100
3101 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3102 switch (ucontrol->value.integer.value[0]) {
3103 case MADNONE:
3104 mad_type = MAD_HW_NONE;
3105 break;
3106 case MADAUDIO:
3107 mad_type = MAD_HW_AUDIO;
3108 break;
3109 case MADBEACON:
3110 mad_type = MAD_HW_BEACON;
3111 break;
3112 case MADULTRASOUND:
3113 mad_type = MAD_HW_ULTRASOUND;
3114 break;
3115 case MADSWAUDIO:
3116 mad_type = MAD_SW_AUDIO;
3117 break;
3118 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003119 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303120 return -EINVAL;
3121 }
3122
3123 /*Check for Tertiary/Quaternary/INT3 TX port*/
3124 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3125 strlen(lsm_port_text[7])))
3126 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3127
3128 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3129 strlen(lsm_port_text[8])))
3130 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3131
3132 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3133 strlen(lsm_port_text[10])))
3134 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3135
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303136 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3137 strlen(lsm_port_text[13])))
3138 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3139
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303140 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3141 strlen(lsm_port_text[14])))
3142 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3143
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303144 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3145 mad_type);
3146 return afe_port_set_mad_type(port_id, mad_type);
3147}
3148
3149static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3150
Surendar Karka25e77dd2019-05-09 14:33:45 +05303151static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303152 adm_override_chs_text);
3153
3154static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3155{
3156 int backend_id;
3157
3158 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3159 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303160 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3161 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303162 } else {
3163 pr_err("%s: unsupported backend id: %s",
3164 __func__, kcontrol->id.name);
3165 return -EINVAL;
3166 }
3167
3168 return backend_id;
3169}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303171static int msm_routing_adm_channel_config_get(
3172 struct snd_kcontrol *kcontrol,
3173 struct snd_ctl_elem_value *ucontrol)
3174{
3175 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3176
3177 if (backend_id >= 0) {
3178 mutex_lock(&routing_lock);
3179 ucontrol->value.integer.value[0] =
3180 msm_bedais[backend_id].adm_override_ch;
3181 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3182 ucontrol->value.integer.value[0], backend_id);
3183 mutex_unlock(&routing_lock);
3184 }
3185
3186 return 0;
3187}
3188
3189static int msm_routing_adm_channel_config_put(
3190 struct snd_kcontrol *kcontrol,
3191 struct snd_ctl_elem_value *ucontrol)
3192{
3193 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3194
3195 if (backend_id >= 0) {
3196 mutex_lock(&routing_lock);
3197 msm_bedais[backend_id].adm_override_ch =
3198 ucontrol->value.integer.value[0];
3199 pr_debug("%s:updating BE :%d adm channels: %d\n",
3200 __func__, backend_id,
3201 msm_bedais[backend_id].adm_override_ch);
3202 mutex_unlock(&routing_lock);
3203 }
3204
3205 return 0;
3206}
3207
3208static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303209 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3210 msm_routing_adm_channel_config_get,
3211 msm_routing_adm_channel_config_put),
3212 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303213 msm_routing_adm_channel_config_get,
3214 msm_routing_adm_channel_config_put),
3215};
3216
3217static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3218 struct snd_ctl_elem_value *ucontrol)
3219{
3220
3221 mutex_lock(&routing_lock);
3222 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3223 mutex_unlock(&routing_lock);
3224 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3225 ucontrol->value.integer.value[0]);
3226 return 0;
3227};
3228
3229static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3230 struct snd_ctl_elem_value *ucontrol)
3231{
3232 struct aanc_data aanc_info;
3233
3234 mutex_lock(&routing_lock);
3235 memset(&aanc_info, 0x00, sizeof(aanc_info));
3236 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3237 ucontrol->value.integer.value[0]);
3238 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3239 if (ucontrol->value.integer.value[0] == 0) {
3240 aanc_info.aanc_active = false;
3241 aanc_info.aanc_tx_port = 0;
3242 aanc_info.aanc_rx_port = 0;
3243 } else {
3244 aanc_info.aanc_active = true;
3245 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3246 aanc_info.aanc_tx_port =
3247 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3248 }
3249 afe_set_aanc_info(&aanc_info);
3250 mutex_unlock(&routing_lock);
3251 return 0;
3252};
3253static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3254 struct snd_ctl_elem_value *ucontrol)
3255{
3256 int idx = 0, shift = 0;
3257 struct soc_mixer_control *mc =
3258 (struct soc_mixer_control *)kcontrol->private_value;
3259
Meng Wang05d5e9a2018-03-28 16:45:03 +08003260 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3261 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303262
3263 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3264 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3265 return -EINVAL;
3266 }
3267
3268 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003269 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303270 ucontrol->value.integer.value[0] = 1;
3271 else
3272 ucontrol->value.integer.value[0] = 0;
3273
Meng Wang05d5e9a2018-03-28 16:45:03 +08003274 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303275 ucontrol->value.integer.value[0]);
3276
3277 return 0;
3278}
3279
3280static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3281 struct snd_ctl_elem_value *ucontrol)
3282{
3283 int idx = 0, shift = 0;
3284 struct soc_mixer_control *mc =
3285 (struct soc_mixer_control *)kcontrol->private_value;
3286
Meng Wang05d5e9a2018-03-28 16:45:03 +08003287 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3288 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303289
3290 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3291 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3292 return -EINVAL;
3293 }
3294
Meng Wang05d5e9a2018-03-28 16:45:03 +08003295 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3296 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303297 ucontrol->value.integer.value[0], idx, shift);
3298
3299 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003300 afe_loopback(1, msm_bedais[mc->shift].port_id,
3301 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303302 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003303 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303304 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003305 afe_loopback(0, msm_bedais[mc->shift].port_id,
3306 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303307 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003308 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303309 }
3310
3311 return 1;
3312}
3313
3314static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3315 struct snd_ctl_elem_value *ucontrol)
3316{
3317 u16 fe_id = 0;
3318
3319 fe_id = ((struct soc_mixer_control *)
3320 kcontrol->private_value)->shift;
3321 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3322 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3323 return -EINVAL;
3324 }
3325
3326 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3327
3328 return 0;
3329}
3330
3331static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3332 struct snd_ctl_elem_value *ucontrol)
3333{
3334 u16 fe_id = 0;
3335
3336 fe_id = ((struct soc_mixer_control *)
3337 kcontrol->private_value)->shift;
3338 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3339 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3340 return -EINVAL;
3341 }
3342
3343 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3344
3345 return 1;
3346}
3347
3348static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3349 struct snd_ctl_elem_value *ucontrol)
3350{
3351 u16 fe_id = 0;
3352
3353 fe_id = ((struct soc_multi_mixer_control *)
3354 kcontrol->private_value)->shift;
3355 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3356 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3357 return -EINVAL;
3358 }
3359
3360 ucontrol->value.integer.value[0] =
3361 channel_mixer[fe_id].output_channel;
3362 return 0;
3363}
3364
3365static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3366 struct snd_ctl_elem_value *ucontrol)
3367{
3368 u16 fe_id = 0;
3369
3370 fe_id = ((struct soc_multi_mixer_control *)
3371 kcontrol->private_value)->shift;
3372 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3373 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3374 return -EINVAL;
3375 }
3376
3377 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3378 fe_id,
3379 (unsigned int)(ucontrol->value.integer.value[0]));
3380 channel_mixer[fe_id].output_channel =
3381 (unsigned int)(ucontrol->value.integer.value[0]);
3382
3383 return 1;
3384}
3385
3386static const char *const ch_mixer[] = {"Disable", "Enable"};
3387
3388/* If new backend is added, need update this array */
3389static const char *const be_name[] = {
3390"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3391"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3392"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3393"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3394"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3395"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3396"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3397"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3398"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3399"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3400"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3401"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003402"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303403"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3404"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3405"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3406"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3407"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3408"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3409"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3410"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3411"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3412"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3413"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3414"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3415"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3416"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3417"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3418"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3419"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303420"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3421"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3422"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3423"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003424"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3425"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3426"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3427"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003428"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3429"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3430"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3431"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3432"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3433"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3434"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3435"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 -08003436"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 +05303437"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3438"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3439"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3440"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3441"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003442"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3443"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303444};
3445
3446static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3447 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3448static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3449 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3450static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3451 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3452static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3453 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303454static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3455 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3456static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3457 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3458static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3459 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3460static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3461 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303462static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3463 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303464
3465static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3466 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3467static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3468 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3469static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3470 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3471static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3472 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3473static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3474 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3475static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3476 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3477static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3478 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3479static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3480 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303481static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3482 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3483static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3484 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3485static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3486 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3487static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3488 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3489static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3490 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3491static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3492 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3493static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3494 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3495static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3496 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303497static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3498 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3499static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3500 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303501
3502static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3503 unsigned int channels,
3504 unsigned int items, const char *const names[])
3505{
3506 if (uinfo->value.enumerated.item >= items)
3507 uinfo->value.enumerated.item = items - 1;
3508
3509 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3510 sizeof(uinfo->value.enumerated.name),
3511 "ALSA: too long item name '%s'\n",
3512 names[uinfo->value.enumerated.item]);
3513 strlcpy(uinfo->value.enumerated.name,
3514 names[uinfo->value.enumerated.item],
3515 sizeof(uinfo->value.enumerated.name));
3516 return 0;
3517}
3518
3519static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3520 struct snd_ctl_elem_info *uinfo)
3521{
3522 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3523
3524 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3525 uinfo->count = 1;
3526
3527 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3528 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3529
3530 return 0;
3531}
3532static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3533 struct snd_ctl_elem_value *ucontrol)
3534{
3535 u16 fe_id = 0;
3536
3537 fe_id = ((struct soc_enum *)
3538 kcontrol->private_value)->shift_l;
3539 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3540 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3541 return -EINVAL;
3542 }
3543
3544 pr_debug("%s: FE %d %s\n", __func__,
3545 fe_id,
3546 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3547 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3548 return 0;
3549}
3550
3551static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3552 struct snd_ctl_elem_value *ucontrol)
3553{
3554 u16 fe_id = 0;
3555
3556 fe_id = ((struct soc_enum *)
3557 kcontrol->private_value)->shift_l;
3558 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3559 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3560 return -EINVAL;
3561 }
3562
3563 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3564 pr_debug("%s: %s FE %d\n", __func__,
3565 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3566 fe_id);
3567 return 0;
3568}
3569
3570static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3571 struct snd_ctl_elem_info *uinfo)
3572{
3573 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3574
3575 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3576 uinfo->count = 1;
3577
3578 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3579 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3580
3581 return 0;
3582}
3583
3584static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3585 struct snd_ctl_elem_value *ucontrol)
3586{
3587 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3588 u16 fe_id = 0, in_ch = 0;
3589
3590 fe_id = e->shift_l;
3591 in_ch = e->shift_r;
3592 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3593 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3594 return -EINVAL;
3595 }
3596 if (in_ch >= ADM_MAX_CHANNELS) {
3597 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3598 return -EINVAL;
3599 }
3600
3601 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3602 return 1;
3603}
3604
3605static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3606 struct snd_ctl_elem_value *ucontrol)
3607{
3608 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3609 u16 fe_id = 0, in_ch = 0;
3610
3611 fe_id = e->shift_l;
3612 in_ch = e->shift_r;
3613 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3614 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3615 return -EINVAL;
3616 }
3617 if (in_ch >= ADM_MAX_CHANNELS) {
3618 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3619 return -EINVAL;
3620 }
3621
3622 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3623 return 1;
3624}
3625
3626
3627static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3628 struct snd_ctl_elem_info *uinfo)
3629{
3630 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3631 uinfo->count = ADM_MAX_CHANNELS;
3632 uinfo->value.integer.min = 0;
3633 uinfo->value.integer.max = WEIGHT_0_DB;
3634
3635 return 0;
3636}
3637
3638static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3639 struct snd_ctl_elem_value *ucontrol)
3640{
3641 u16 fe_id = 0, out_ch = 0;
3642 int i, weight;
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 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3658 __func__, fe_id,
3659 ucontrol->value.integer.value[0],
3660 ucontrol->value.integer.value[1],
3661 ucontrol->value.integer.value[2],
3662 ucontrol->value.integer.value[3],
3663 ucontrol->value.integer.value[4],
3664 ucontrol->value.integer.value[5],
3665 ucontrol->value.integer.value[6],
3666 ucontrol->value.integer.value[7]);
3667
3668 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3669 weight = ucontrol->value.integer.value[i];
3670 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3671 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3672 __func__, fe_id, out_ch, i,
3673 channel_mixer[fe_id].channel_weight[out_ch][i]);
3674 }
3675
3676 return 0;
3677}
3678
3679static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3680 struct snd_ctl_elem_value *ucontrol)
3681{
3682 u16 fe_id = 0, out_ch = 0;
3683 int i;
3684
3685 fe_id = ((struct soc_multi_mixer_control *)
3686 kcontrol->private_value)->shift;
3687 out_ch = ((struct soc_multi_mixer_control *)
3688 kcontrol->private_value)->rshift;
3689 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3690 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3691 return -EINVAL;
3692 }
3693 if (out_ch >= ADM_MAX_CHANNELS) {
3694 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3695 return -EINVAL;
3696 }
3697
3698 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3699 ucontrol->value.integer.value[i] =
3700 channel_mixer[fe_id].channel_weight[out_ch][i];
3701
3702 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3703 __func__, fe_id,
3704 ucontrol->value.integer.value[0],
3705 ucontrol->value.integer.value[1],
3706 ucontrol->value.integer.value[2],
3707 ucontrol->value.integer.value[3],
3708 ucontrol->value.integer.value[4],
3709 ucontrol->value.integer.value[5],
3710 ucontrol->value.integer.value[6],
3711 ucontrol->value.integer.value[7]);
3712
3713 return 0;
3714}
3715
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303716static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3717 struct snd_ctl_elem_info *uinfo)
3718{
3719 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3720 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3721 /* Valid channel map value ranges from 1 to 64 */
3722 uinfo->value.integer.min = 0;
3723 uinfo->value.integer.max = 64;
3724
3725 return 0;
3726}
3727
3728static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3729 struct snd_ctl_elem_value *ucontrol)
3730{
3731 u16 fe_id = 0;
3732 int i, ch_map;
3733
3734 fe_id = ((struct soc_multi_mixer_control *)
3735 kcontrol->private_value)->shift;
3736 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3737 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3738 return -EINVAL;
3739 }
3740
3741 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3742 ch_map = ucontrol->value.integer.value[i];
3743 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3744 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3745 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3746 }
3747
3748 /* Make override_out_ch_map false if ch map is reset */
3749 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3750 channel_mixer[fe_id].override_out_ch_map = false;
3751 else
3752 channel_mixer[fe_id].override_out_ch_map = true;
3753
3754 return 0;
3755}
3756
3757static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3758 struct snd_ctl_elem_value *ucontrol)
3759{
3760 u16 fe_id = 0;
3761 int i;
3762
3763 fe_id = ((struct soc_multi_mixer_control *)
3764 kcontrol->private_value)->shift;
3765 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3766 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3767 return -EINVAL;
3768 }
3769
3770 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3771 ucontrol->value.integer.value[i] =
3772 channel_mixer[fe_id].out_ch_map[i];
3773
3774 return 0;
3775}
3776
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303777static const struct snd_kcontrol_new channel_mixer_controls[] = {
3778 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3779 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3780 msm_pcm_get_channel_rule_index,
3781 msm_pcm_put_channel_rule_index),
3782 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3783 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3784 msm_pcm_get_channel_rule_index,
3785 msm_pcm_put_channel_rule_index),
3786 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3787 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3788 msm_pcm_get_channel_rule_index,
3789 msm_pcm_put_channel_rule_index),
3790 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3791 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3792 msm_pcm_get_channel_rule_index,
3793 msm_pcm_put_channel_rule_index),
3794 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3795 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3796 msm_pcm_get_channel_rule_index,
3797 msm_pcm_put_channel_rule_index),
3798 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3799 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3800 msm_pcm_get_channel_rule_index,
3801 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303802 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3803 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3804 msm_pcm_get_channel_rule_index,
3805 msm_pcm_put_channel_rule_index),
3806 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3807 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3808 msm_pcm_get_channel_rule_index,
3809 msm_pcm_put_channel_rule_index),
3810 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3811 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3812 msm_pcm_get_channel_rule_index,
3813 msm_pcm_put_channel_rule_index),
3814 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3815 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3816 msm_pcm_get_channel_rule_index,
3817 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303818 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3819 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3820 msm_pcm_get_channel_rule_index,
3821 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303822
3823 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303824 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303825 msm_pcm_get_out_chs,
3826 msm_pcm_put_out_chs),
3827 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3828 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3829 msm_pcm_get_out_chs,
3830 msm_pcm_put_out_chs),
3831 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3832 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3833 msm_pcm_get_out_chs,
3834 msm_pcm_put_out_chs),
3835 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3836 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3837 msm_pcm_get_out_chs,
3838 msm_pcm_put_out_chs),
3839 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3840 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3841 msm_pcm_get_out_chs,
3842 msm_pcm_put_out_chs),
3843 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3844 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3845 msm_pcm_get_out_chs,
3846 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303847 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3848 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3849 msm_pcm_get_out_chs,
3850 msm_pcm_put_out_chs),
3851 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3852 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3853 msm_pcm_get_out_chs,
3854 msm_pcm_put_out_chs),
3855 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3856 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3857 msm_pcm_get_out_chs,
3858 msm_pcm_put_out_chs),
3859 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3860 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3861 msm_pcm_get_out_chs,
3862 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303863 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3864 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3865 msm_pcm_get_out_chs,
3866 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303867 {
3868 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3869 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3870 .name = "MultiMedia1 Channel Mixer",
3871 .info = msm_pcm_channel_mixer_info,
3872 .get = msm_pcm_channel_mixer_get,
3873 .put = msm_pcm_channel_mixer_put,
3874 .private_value = (unsigned long)&(mm1_channel_mux)
3875 },
3876 {
3877 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3878 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3879 .name = "MultiMedia2 Channel Mixer",
3880 .info = msm_pcm_channel_mixer_info,
3881 .get = msm_pcm_channel_mixer_get,
3882 .put = msm_pcm_channel_mixer_put,
3883 .private_value = (unsigned long)&(mm2_channel_mux)
3884 },
3885 {
3886 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3887 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3888 .name = "MultiMedia3 Channel Mixer",
3889 .info = msm_pcm_channel_mixer_info,
3890 .get = msm_pcm_channel_mixer_get,
3891 .put = msm_pcm_channel_mixer_put,
3892 .private_value = (unsigned long)&(mm3_channel_mux)
3893 },
3894 {
3895 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3896 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3897 .name = "MultiMedia4 Channel Mixer",
3898 .info = msm_pcm_channel_mixer_info,
3899 .get = msm_pcm_channel_mixer_get,
3900 .put = msm_pcm_channel_mixer_put,
3901 .private_value = (unsigned long)&(mm4_channel_mux)
3902 },
3903 {
3904 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3905 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303906 .name = "MultiMedia18 Channel Mixer",
3907 .info = msm_pcm_channel_mixer_info,
3908 .get = msm_pcm_channel_mixer_get,
3909 .put = msm_pcm_channel_mixer_put,
3910 .private_value = (unsigned long)&(mm18_channel_mux)
3911 },
3912 {
3913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3914 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3915 .name = "MultiMedia19 Channel Mixer",
3916 .info = msm_pcm_channel_mixer_info,
3917 .get = msm_pcm_channel_mixer_get,
3918 .put = msm_pcm_channel_mixer_put,
3919 .private_value = (unsigned long)&(mm19_channel_mux)
3920 },
3921 {
3922 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3923 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3924 .name = "MultiMedia28 Channel Mixer",
3925 .info = msm_pcm_channel_mixer_info,
3926 .get = msm_pcm_channel_mixer_get,
3927 .put = msm_pcm_channel_mixer_put,
3928 .private_value = (unsigned long)&(mm28_channel_mux)
3929 },
3930 {
3931 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3932 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3933 .name = "MultiMedia29 Channel Mixer",
3934 .info = msm_pcm_channel_mixer_info,
3935 .get = msm_pcm_channel_mixer_get,
3936 .put = msm_pcm_channel_mixer_put,
3937 .private_value = (unsigned long)&(mm29_channel_mux)
3938 },
3939 {
3940 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3941 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303942 .name = "MultiMedia30 Channel Mixer",
3943 .info = msm_pcm_channel_mixer_info,
3944 .get = msm_pcm_channel_mixer_get,
3945 .put = msm_pcm_channel_mixer_put,
3946 .private_value = (unsigned long)&(mm30_channel_mux)
3947 },
3948 {
3949 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3950 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303951 .name = "MultiMedia1 Output Channel1",
3952 .info = msm_pcm_channel_weight_info,
3953 .get = msm_pcm_channel_weight_get,
3954 .put = msm_pcm_channel_weight_put,
3955 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3956 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3957 },
3958 {
3959 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3960 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3961 .name = "MultiMedia1 Output Channel2",
3962 .info = msm_pcm_channel_weight_info,
3963 .get = msm_pcm_channel_weight_get,
3964 .put = msm_pcm_channel_weight_put,
3965 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3966 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3967 },
3968 {
3969 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3971 .name = "MultiMedia1 Output Channel3",
3972 .info = msm_pcm_channel_weight_info,
3973 .get = msm_pcm_channel_weight_get,
3974 .put = msm_pcm_channel_weight_put,
3975 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3976 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3977 },
3978 {
3979 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3980 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3981 .name = "MultiMedia1 Output Channel4",
3982 .info = msm_pcm_channel_weight_info,
3983 .get = msm_pcm_channel_weight_get,
3984 .put = msm_pcm_channel_weight_put,
3985 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3986 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3987 },
3988 {
3989 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3990 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3991 .name = "MultiMedia1 Output Channel5",
3992 .info = msm_pcm_channel_weight_info,
3993 .get = msm_pcm_channel_weight_get,
3994 .put = msm_pcm_channel_weight_put,
3995 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3996 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3997 },
3998 {
3999 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4000 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4001 .name = "MultiMedia1 Output Channel6",
4002 .info = msm_pcm_channel_weight_info,
4003 .get = msm_pcm_channel_weight_get,
4004 .put = msm_pcm_channel_weight_put,
4005 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4006 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4007 },
4008 {
4009 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4010 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4011 .name = "MultiMedia1 Output Channel7",
4012 .info = msm_pcm_channel_weight_info,
4013 .get = msm_pcm_channel_weight_get,
4014 .put = msm_pcm_channel_weight_put,
4015 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4016 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4017 },
4018 {
4019 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4020 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4021 .name = "MultiMedia1 Output Channel8",
4022 .info = msm_pcm_channel_weight_info,
4023 .get = msm_pcm_channel_weight_get,
4024 .put = msm_pcm_channel_weight_put,
4025 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4026 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4027 },
4028 {
4029 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4030 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304031 .name = "MultiMedia1 Output Channel9",
4032 .info = msm_pcm_channel_weight_info,
4033 .get = msm_pcm_channel_weight_get,
4034 .put = msm_pcm_channel_weight_put,
4035 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4036 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4037 },
4038 {
4039 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4040 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4041 .name = "MultiMedia1 Output Channel10",
4042 .info = msm_pcm_channel_weight_info,
4043 .get = msm_pcm_channel_weight_get,
4044 .put = msm_pcm_channel_weight_put,
4045 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4046 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4047 },
4048 {
4049 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4050 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304051 .name = "MultiMedia1 Output Channel11",
4052 .info = msm_pcm_channel_weight_info,
4053 .get = msm_pcm_channel_weight_get,
4054 .put = msm_pcm_channel_weight_put,
4055 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4056 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4057 },
4058 {
4059 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4060 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4061 .name = "MultiMedia1 Output Channel12",
4062 .info = msm_pcm_channel_weight_info,
4063 .get = msm_pcm_channel_weight_get,
4064 .put = msm_pcm_channel_weight_put,
4065 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4066 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4067 },
4068 {
4069 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4070 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4071 .name = "MultiMedia1 Output Channel13",
4072 .info = msm_pcm_channel_weight_info,
4073 .get = msm_pcm_channel_weight_get,
4074 .put = msm_pcm_channel_weight_put,
4075 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4076 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4077 },
4078 {
4079 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4080 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4081 .name = "MultiMedia1 Output Channel14",
4082 .info = msm_pcm_channel_weight_info,
4083 .get = msm_pcm_channel_weight_get,
4084 .put = msm_pcm_channel_weight_put,
4085 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4086 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4087 },
4088 {
4089 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4090 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304091 .name = "MultiMedia2 Output Channel1",
4092 .info = msm_pcm_channel_weight_info,
4093 .get = msm_pcm_channel_weight_get,
4094 .put = msm_pcm_channel_weight_put,
4095 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4096 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4097 },
4098 {
4099 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4100 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4101 .name = "MultiMedia2 Output Channel2",
4102 .info = msm_pcm_channel_weight_info,
4103 .get = msm_pcm_channel_weight_get,
4104 .put = msm_pcm_channel_weight_put,
4105 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4106 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4107 },
4108 {
4109 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4110 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4111 .name = "MultiMedia2 Output Channel3",
4112 .info = msm_pcm_channel_weight_info,
4113 .get = msm_pcm_channel_weight_get,
4114 .put = msm_pcm_channel_weight_put,
4115 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4116 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4117 },
4118 {
4119 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4120 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4121 .name = "MultiMedia3 Output Channel1",
4122 .info = msm_pcm_channel_weight_info,
4123 .get = msm_pcm_channel_weight_get,
4124 .put = msm_pcm_channel_weight_put,
4125 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4126 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4127 },
4128 {
4129 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4130 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4131 .name = "MultiMedia3 Output Channel2",
4132 .info = msm_pcm_channel_weight_info,
4133 .get = msm_pcm_channel_weight_get,
4134 .put = msm_pcm_channel_weight_put,
4135 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4136 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4137 },
4138 {
4139 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4140 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304141 .name = "MultiMedia18 Output Channel1",
4142 .info = msm_pcm_channel_weight_info,
4143 .get = msm_pcm_channel_weight_get,
4144 .put = msm_pcm_channel_weight_put,
4145 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4146 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4147 },
4148 {
4149 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4150 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4151 .name = "MultiMedia18 Output Channel2",
4152 .info = msm_pcm_channel_weight_info,
4153 .get = msm_pcm_channel_weight_get,
4154 .put = msm_pcm_channel_weight_put,
4155 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4156 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4157 },
4158 {
4159 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4160 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4161 .name = "MultiMedia18 Output Channel3",
4162 .info = msm_pcm_channel_weight_info,
4163 .get = msm_pcm_channel_weight_get,
4164 .put = msm_pcm_channel_weight_put,
4165 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4166 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4167 },
4168 {
4169 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4170 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4171 .name = "MultiMedia18 Output Channel4",
4172 .info = msm_pcm_channel_weight_info,
4173 .get = msm_pcm_channel_weight_get,
4174 .put = msm_pcm_channel_weight_put,
4175 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4176 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4177 },
4178 {
4179 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4180 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4181 .name = "MultiMedia18 Output Channel5",
4182 .info = msm_pcm_channel_weight_info,
4183 .get = msm_pcm_channel_weight_get,
4184 .put = msm_pcm_channel_weight_put,
4185 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4186 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4187 },
4188 {
4189 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4190 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4191 .name = "MultiMedia18 Output Channel6",
4192 .info = msm_pcm_channel_weight_info,
4193 .get = msm_pcm_channel_weight_get,
4194 .put = msm_pcm_channel_weight_put,
4195 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4196 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4197 },
4198 {
4199 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4200 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4201 .name = "MultiMedia18 Output Channel7",
4202 .info = msm_pcm_channel_weight_info,
4203 .get = msm_pcm_channel_weight_get,
4204 .put = msm_pcm_channel_weight_put,
4205 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4206 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4207 },
4208 {
4209 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4210 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4211 .name = "MultiMedia18 Output Channel8",
4212 .info = msm_pcm_channel_weight_info,
4213 .get = msm_pcm_channel_weight_get,
4214 .put = msm_pcm_channel_weight_put,
4215 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4216 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4217 },
4218 {
4219 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4220 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4221 .name = "MultiMedia18 Output Channel9",
4222 .info = msm_pcm_channel_weight_info,
4223 .get = msm_pcm_channel_weight_get,
4224 .put = msm_pcm_channel_weight_put,
4225 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4226 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4227 },
4228 {
4229 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4230 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4231 .name = "MultiMedia18 Output Channel10",
4232 .info = msm_pcm_channel_weight_info,
4233 .get = msm_pcm_channel_weight_get,
4234 .put = msm_pcm_channel_weight_put,
4235 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4236 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4237 },
4238 {
4239 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4240 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4241 .name = "MultiMedia18 Output Channel11",
4242 .info = msm_pcm_channel_weight_info,
4243 .get = msm_pcm_channel_weight_get,
4244 .put = msm_pcm_channel_weight_put,
4245 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4246 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4247 },
4248 {
4249 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4250 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4251 .name = "MultiMedia18 Output Channel12",
4252 .info = msm_pcm_channel_weight_info,
4253 .get = msm_pcm_channel_weight_get,
4254 .put = msm_pcm_channel_weight_put,
4255 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4256 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4257 },
4258 {
4259 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4260 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4261 .name = "MultiMedia18 Output Channel13",
4262 .info = msm_pcm_channel_weight_info,
4263 .get = msm_pcm_channel_weight_get,
4264 .put = msm_pcm_channel_weight_put,
4265 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4266 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4267 },
4268 {
4269 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4270 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4271 .name = "MultiMedia18 Output Channel14",
4272 .info = msm_pcm_channel_weight_info,
4273 .get = msm_pcm_channel_weight_get,
4274 .put = msm_pcm_channel_weight_put,
4275 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4276 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4277 },
4278 {
4279 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4280 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4281 .name = "MultiMedia19 Output Channel1",
4282 .info = msm_pcm_channel_weight_info,
4283 .get = msm_pcm_channel_weight_get,
4284 .put = msm_pcm_channel_weight_put,
4285 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4286 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4287 },
4288 {
4289 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4290 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4291 .name = "MultiMedia19 Output Channel2",
4292 .info = msm_pcm_channel_weight_info,
4293 .get = msm_pcm_channel_weight_get,
4294 .put = msm_pcm_channel_weight_put,
4295 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4296 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4297 },
4298 {
4299 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4300 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4301 .name = "MultiMedia19 Output Channel3",
4302 .info = msm_pcm_channel_weight_info,
4303 .get = msm_pcm_channel_weight_get,
4304 .put = msm_pcm_channel_weight_put,
4305 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4306 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4307 },
4308 {
4309 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4310 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4311 .name = "MultiMedia19 Output Channel4",
4312 .info = msm_pcm_channel_weight_info,
4313 .get = msm_pcm_channel_weight_get,
4314 .put = msm_pcm_channel_weight_put,
4315 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4316 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4317 },
4318 {
4319 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4320 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4321 .name = "MultiMedia19 Output Channel5",
4322 .info = msm_pcm_channel_weight_info,
4323 .get = msm_pcm_channel_weight_get,
4324 .put = msm_pcm_channel_weight_put,
4325 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4326 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4327 },
4328 {
4329 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4330 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4331 .name = "MultiMedia19 Output Channel6",
4332 .info = msm_pcm_channel_weight_info,
4333 .get = msm_pcm_channel_weight_get,
4334 .put = msm_pcm_channel_weight_put,
4335 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4336 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4337 },
4338 {
4339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4340 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4341 .name = "MultiMedia19 Output Channel7",
4342 .info = msm_pcm_channel_weight_info,
4343 .get = msm_pcm_channel_weight_get,
4344 .put = msm_pcm_channel_weight_put,
4345 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4346 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4347 },
4348 {
4349 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4350 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4351 .name = "MultiMedia19 Output Channel8",
4352 .info = msm_pcm_channel_weight_info,
4353 .get = msm_pcm_channel_weight_get,
4354 .put = msm_pcm_channel_weight_put,
4355 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4356 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4357 },
4358 {
4359 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4360 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4361 .name = "MultiMedia19 Output Channel9",
4362 .info = msm_pcm_channel_weight_info,
4363 .get = msm_pcm_channel_weight_get,
4364 .put = msm_pcm_channel_weight_put,
4365 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4366 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4367 },
4368 {
4369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4370 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4371 .name = "MultiMedia19 Output Channel10",
4372 .info = msm_pcm_channel_weight_info,
4373 .get = msm_pcm_channel_weight_get,
4374 .put = msm_pcm_channel_weight_put,
4375 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4376 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4377 },
4378 {
4379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4380 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4381 .name = "MultiMedia19 Output Channel11",
4382 .info = msm_pcm_channel_weight_info,
4383 .get = msm_pcm_channel_weight_get,
4384 .put = msm_pcm_channel_weight_put,
4385 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4386 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4387 },
4388 {
4389 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4390 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4391 .name = "MultiMedia19 Output Channel12",
4392 .info = msm_pcm_channel_weight_info,
4393 .get = msm_pcm_channel_weight_get,
4394 .put = msm_pcm_channel_weight_put,
4395 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4396 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4397 },
4398 {
4399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4400 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4401 .name = "MultiMedia19 Output Channel13",
4402 .info = msm_pcm_channel_weight_info,
4403 .get = msm_pcm_channel_weight_get,
4404 .put = msm_pcm_channel_weight_put,
4405 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4406 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4407 },
4408 {
4409 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4410 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4411 .name = "MultiMedia19 Output Channel14",
4412 .info = msm_pcm_channel_weight_info,
4413 .get = msm_pcm_channel_weight_get,
4414 .put = msm_pcm_channel_weight_put,
4415 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4416 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4417 },
4418 {
4419 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4421 .name = "MultiMedia28 Output Channel1",
4422 .info = msm_pcm_channel_weight_info,
4423 .get = msm_pcm_channel_weight_get,
4424 .put = msm_pcm_channel_weight_put,
4425 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4426 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4427 },
4428 {
4429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4430 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4431 .name = "MultiMedia28 Output Channel2",
4432 .info = msm_pcm_channel_weight_info,
4433 .get = msm_pcm_channel_weight_get,
4434 .put = msm_pcm_channel_weight_put,
4435 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4436 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4437 },
4438 {
4439 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4440 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4441 .name = "MultiMedia28 Output Channel3",
4442 .info = msm_pcm_channel_weight_info,
4443 .get = msm_pcm_channel_weight_get,
4444 .put = msm_pcm_channel_weight_put,
4445 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4446 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4447 },
4448 {
4449 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4450 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4451 .name = "MultiMedia28 Output Channel4",
4452 .info = msm_pcm_channel_weight_info,
4453 .get = msm_pcm_channel_weight_get,
4454 .put = msm_pcm_channel_weight_put,
4455 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4456 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4457 },
4458 {
4459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4460 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4461 .name = "MultiMedia28 Output Channel5",
4462 .info = msm_pcm_channel_weight_info,
4463 .get = msm_pcm_channel_weight_get,
4464 .put = msm_pcm_channel_weight_put,
4465 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4466 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4467 },
4468 {
4469 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4470 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4471 .name = "MultiMedia28 Output Channel6",
4472 .info = msm_pcm_channel_weight_info,
4473 .get = msm_pcm_channel_weight_get,
4474 .put = msm_pcm_channel_weight_put,
4475 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4476 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4477 },
4478 {
4479 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4480 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4481 .name = "MultiMedia28 Output Channel7",
4482 .info = msm_pcm_channel_weight_info,
4483 .get = msm_pcm_channel_weight_get,
4484 .put = msm_pcm_channel_weight_put,
4485 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4486 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4487 },
4488 {
4489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4490 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4491 .name = "MultiMedia28 Output Channel8",
4492 .info = msm_pcm_channel_weight_info,
4493 .get = msm_pcm_channel_weight_get,
4494 .put = msm_pcm_channel_weight_put,
4495 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4496 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4497 },
4498 {
4499 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4500 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4501 .name = "MultiMedia28 Output Channel9",
4502 .info = msm_pcm_channel_weight_info,
4503 .get = msm_pcm_channel_weight_get,
4504 .put = msm_pcm_channel_weight_put,
4505 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4506 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4507 },
4508 {
4509 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4510 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4511 .name = "MultiMedia28 Output Channel10",
4512 .info = msm_pcm_channel_weight_info,
4513 .get = msm_pcm_channel_weight_get,
4514 .put = msm_pcm_channel_weight_put,
4515 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4516 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4517 },
4518 {
4519 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4520 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4521 .name = "MultiMedia28 Output Channel11",
4522 .info = msm_pcm_channel_weight_info,
4523 .get = msm_pcm_channel_weight_get,
4524 .put = msm_pcm_channel_weight_put,
4525 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4526 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4527 },
4528 {
4529 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4530 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4531 .name = "MultiMedia28 Output Channel12",
4532 .info = msm_pcm_channel_weight_info,
4533 .get = msm_pcm_channel_weight_get,
4534 .put = msm_pcm_channel_weight_put,
4535 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4536 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4537 },
4538 {
4539 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4540 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4541 .name = "MultiMedia28 Output Channel13",
4542 .info = msm_pcm_channel_weight_info,
4543 .get = msm_pcm_channel_weight_get,
4544 .put = msm_pcm_channel_weight_put,
4545 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4546 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4547 },
4548 {
4549 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4550 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4551 .name = "MultiMedia28 Output Channel14",
4552 .info = msm_pcm_channel_weight_info,
4553 .get = msm_pcm_channel_weight_get,
4554 .put = msm_pcm_channel_weight_put,
4555 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4556 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4557 },
4558 {
4559 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4560 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4561 .name = "MultiMedia29 Output Channel1",
4562 .info = msm_pcm_channel_weight_info,
4563 .get = msm_pcm_channel_weight_get,
4564 .put = msm_pcm_channel_weight_put,
4565 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4566 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4567 },
4568 {
4569 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4570 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4571 .name = "MultiMedia29 Output Channel2",
4572 .info = msm_pcm_channel_weight_info,
4573 .get = msm_pcm_channel_weight_get,
4574 .put = msm_pcm_channel_weight_put,
4575 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4576 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4577 },
4578 {
4579 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4580 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4581 .name = "MultiMedia29 Output Channel3",
4582 .info = msm_pcm_channel_weight_info,
4583 .get = msm_pcm_channel_weight_get,
4584 .put = msm_pcm_channel_weight_put,
4585 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4586 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4587 },
4588 {
4589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4590 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4591 .name = "MultiMedia29 Output Channel4",
4592 .info = msm_pcm_channel_weight_info,
4593 .get = msm_pcm_channel_weight_get,
4594 .put = msm_pcm_channel_weight_put,
4595 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4596 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4597 },
4598 {
4599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4601 .name = "MultiMedia29 Output Channel5",
4602 .info = msm_pcm_channel_weight_info,
4603 .get = msm_pcm_channel_weight_get,
4604 .put = msm_pcm_channel_weight_put,
4605 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4606 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4607 },
4608 {
4609 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4610 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4611 .name = "MultiMedia29 Output Channel6",
4612 .info = msm_pcm_channel_weight_info,
4613 .get = msm_pcm_channel_weight_get,
4614 .put = msm_pcm_channel_weight_put,
4615 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4616 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4617 },
4618 {
4619 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4620 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4621 .name = "MultiMedia29 Output Channel7",
4622 .info = msm_pcm_channel_weight_info,
4623 .get = msm_pcm_channel_weight_get,
4624 .put = msm_pcm_channel_weight_put,
4625 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4626 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4627 },
4628 {
4629 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4630 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4631 .name = "MultiMedia29 Output Channel8",
4632 .info = msm_pcm_channel_weight_info,
4633 .get = msm_pcm_channel_weight_get,
4634 .put = msm_pcm_channel_weight_put,
4635 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4636 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4637 },
4638 {
4639 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4640 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4641 .name = "MultiMedia29 Output Channel9",
4642 .info = msm_pcm_channel_weight_info,
4643 .get = msm_pcm_channel_weight_get,
4644 .put = msm_pcm_channel_weight_put,
4645 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4646 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4647 },
4648 {
4649 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4650 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4651 .name = "MultiMedia29 Output Channel10",
4652 .info = msm_pcm_channel_weight_info,
4653 .get = msm_pcm_channel_weight_get,
4654 .put = msm_pcm_channel_weight_put,
4655 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4656 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4657 },
4658 {
4659 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4660 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4661 .name = "MultiMedia29 Output Channel11",
4662 .info = msm_pcm_channel_weight_info,
4663 .get = msm_pcm_channel_weight_get,
4664 .put = msm_pcm_channel_weight_put,
4665 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4666 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4667 },
4668 {
4669 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4670 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4671 .name = "MultiMedia29 Output Channel12",
4672 .info = msm_pcm_channel_weight_info,
4673 .get = msm_pcm_channel_weight_get,
4674 .put = msm_pcm_channel_weight_put,
4675 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4676 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4677 },
4678 {
4679 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4680 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4681 .name = "MultiMedia29 Output Channel13",
4682 .info = msm_pcm_channel_weight_info,
4683 .get = msm_pcm_channel_weight_get,
4684 .put = msm_pcm_channel_weight_put,
4685 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4686 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4687 },
4688 {
4689 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4690 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4691 .name = "MultiMedia29 Output Channel14",
4692 .info = msm_pcm_channel_weight_info,
4693 .get = msm_pcm_channel_weight_get,
4694 .put = msm_pcm_channel_weight_put,
4695 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4696 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4697 },
4698 {
4699 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304701 .name = "MultiMedia30 Output Channel1",
4702 .info = msm_pcm_channel_weight_info,
4703 .get = msm_pcm_channel_weight_get,
4704 .put = msm_pcm_channel_weight_put,
4705 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4706 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4707 },
4708 {
4709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4710 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4711 .name = "MultiMedia30 Output Channel2",
4712 .info = msm_pcm_channel_weight_info,
4713 .get = msm_pcm_channel_weight_get,
4714 .put = msm_pcm_channel_weight_put,
4715 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4716 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4717 },
4718 {
4719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4720 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4721 .name = "MultiMedia30 Output Channel3",
4722 .info = msm_pcm_channel_weight_info,
4723 .get = msm_pcm_channel_weight_get,
4724 .put = msm_pcm_channel_weight_put,
4725 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4726 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4727 },
4728 {
4729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4730 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4731 .name = "MultiMedia30 Output Channel4",
4732 .info = msm_pcm_channel_weight_info,
4733 .get = msm_pcm_channel_weight_get,
4734 .put = msm_pcm_channel_weight_put,
4735 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4736 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4737 },
4738 {
4739 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4740 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4741 .name = "MultiMedia30 Output Channel5",
4742 .info = msm_pcm_channel_weight_info,
4743 .get = msm_pcm_channel_weight_get,
4744 .put = msm_pcm_channel_weight_put,
4745 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4746 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4747 },
4748 {
4749 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4750 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4751 .name = "MultiMedia30 Output Channel6",
4752 .info = msm_pcm_channel_weight_info,
4753 .get = msm_pcm_channel_weight_get,
4754 .put = msm_pcm_channel_weight_put,
4755 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4756 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4757 },
4758 {
4759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4760 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4761 .name = "MultiMedia30 Output Channel7",
4762 .info = msm_pcm_channel_weight_info,
4763 .get = msm_pcm_channel_weight_get,
4764 .put = msm_pcm_channel_weight_put,
4765 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4766 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4767 },
4768 {
4769 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4770 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4771 .name = "MultiMedia30 Output Channel8",
4772 .info = msm_pcm_channel_weight_info,
4773 .get = msm_pcm_channel_weight_get,
4774 .put = msm_pcm_channel_weight_put,
4775 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4776 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4777 },
4778 {
4779 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4780 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4781 .name = "MultiMedia30 Output Channel9",
4782 .info = msm_pcm_channel_weight_info,
4783 .get = msm_pcm_channel_weight_get,
4784 .put = msm_pcm_channel_weight_put,
4785 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4786 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4787 },
4788 {
4789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4790 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4791 .name = "MultiMedia30 Output Channel10",
4792 .info = msm_pcm_channel_weight_info,
4793 .get = msm_pcm_channel_weight_get,
4794 .put = msm_pcm_channel_weight_put,
4795 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4796 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4797 },
4798 {
4799 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4800 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4801 .name = "MultiMedia30 Output Channel11",
4802 .info = msm_pcm_channel_weight_info,
4803 .get = msm_pcm_channel_weight_get,
4804 .put = msm_pcm_channel_weight_put,
4805 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4806 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4807 },
4808 {
4809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4810 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4811 .name = "MultiMedia30 Output Channel12",
4812 .info = msm_pcm_channel_weight_info,
4813 .get = msm_pcm_channel_weight_get,
4814 .put = msm_pcm_channel_weight_put,
4815 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4816 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4817 },
4818 {
4819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4820 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4821 .name = "MultiMedia30 Output Channel13",
4822 .info = msm_pcm_channel_weight_info,
4823 .get = msm_pcm_channel_weight_get,
4824 .put = msm_pcm_channel_weight_put,
4825 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4826 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4827 },
4828 {
4829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4830 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4831 .name = "MultiMedia30 Output Channel14",
4832 .info = msm_pcm_channel_weight_info,
4833 .get = msm_pcm_channel_weight_get,
4834 .put = msm_pcm_channel_weight_put,
4835 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4836 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4837 },
4838 {
4839 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4840 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 .name = "MultiMedia1 Channel1",
4842 .info = msm_pcm_channel_input_be_info,
4843 .get = msm_pcm_channel_input_be_get,
4844 .put = msm_pcm_channel_input_be_put,
4845 .private_value = (unsigned long)&(mm1_ch1_enum)
4846 },
4847 {
4848 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4849 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4850 .name = "MultiMedia1 Channel2",
4851 .info = msm_pcm_channel_input_be_info,
4852 .get = msm_pcm_channel_input_be_get,
4853 .put = msm_pcm_channel_input_be_put,
4854 .private_value = (unsigned long)&(mm1_ch2_enum)
4855 },
4856 {
4857 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4858 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4859 .name = "MultiMedia1 Channel3",
4860 .info = msm_pcm_channel_input_be_info,
4861 .get = msm_pcm_channel_input_be_get,
4862 .put = msm_pcm_channel_input_be_put,
4863 .private_value = (unsigned long)&(mm1_ch3_enum)
4864 },
4865 {
4866 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4867 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4868 .name = "MultiMedia1 Channel4",
4869 .info = msm_pcm_channel_input_be_info,
4870 .get = msm_pcm_channel_input_be_get,
4871 .put = msm_pcm_channel_input_be_put,
4872 .private_value = (unsigned long)&(mm1_ch4_enum)
4873 },
4874 {
4875 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4876 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4877 .name = "MultiMedia1 Channel5",
4878 .info = msm_pcm_channel_input_be_info,
4879 .get = msm_pcm_channel_input_be_get,
4880 .put = msm_pcm_channel_input_be_put,
4881 .private_value = (unsigned long)&(mm1_ch5_enum)
4882 },
4883 {
4884 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4885 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4886 .name = "MultiMedia1 Channel6",
4887 .info = msm_pcm_channel_input_be_info,
4888 .get = msm_pcm_channel_input_be_get,
4889 .put = msm_pcm_channel_input_be_put,
4890 .private_value = (unsigned long)&(mm1_ch6_enum)
4891 },
4892 {
4893 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4894 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4895 .name = "MultiMedia1 Channel7",
4896 .info = msm_pcm_channel_input_be_info,
4897 .get = msm_pcm_channel_input_be_get,
4898 .put = msm_pcm_channel_input_be_put,
4899 .private_value = (unsigned long)&(mm1_ch7_enum)
4900 },
4901 {
4902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4903 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4904 .name = "MultiMedia1 Channel8",
4905 .info = msm_pcm_channel_input_be_info,
4906 .get = msm_pcm_channel_input_be_get,
4907 .put = msm_pcm_channel_input_be_put,
4908 .private_value = (unsigned long)&(mm1_ch8_enum)
4909 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304910 {
4911 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4912 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304913 .name = "MultiMedia18 Channel1",
4914 .info = msm_pcm_channel_input_be_info,
4915 .get = msm_pcm_channel_input_be_get,
4916 .put = msm_pcm_channel_input_be_put,
4917 .private_value = (unsigned long)&(mm18_ch1_enum)
4918 },
4919 {
4920 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4921 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4922 .name = "MultiMedia18 Channel2",
4923 .info = msm_pcm_channel_input_be_info,
4924 .get = msm_pcm_channel_input_be_get,
4925 .put = msm_pcm_channel_input_be_put,
4926 .private_value = (unsigned long)&(mm18_ch2_enum)
4927 },
4928 {
4929 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4930 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4931 .name = "MultiMedia19 Channel1",
4932 .info = msm_pcm_channel_input_be_info,
4933 .get = msm_pcm_channel_input_be_get,
4934 .put = msm_pcm_channel_input_be_put,
4935 .private_value = (unsigned long)&(mm19_ch1_enum)
4936 },
4937 {
4938 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4939 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4940 .name = "MultiMedia19 Channel2",
4941 .info = msm_pcm_channel_input_be_info,
4942 .get = msm_pcm_channel_input_be_get,
4943 .put = msm_pcm_channel_input_be_put,
4944 .private_value = (unsigned long)&(mm19_ch2_enum)
4945 },
4946 {
4947 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4948 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4949 .name = "MultiMedia28 Channel1",
4950 .info = msm_pcm_channel_input_be_info,
4951 .get = msm_pcm_channel_input_be_get,
4952 .put = msm_pcm_channel_input_be_put,
4953 .private_value = (unsigned long)&(mm28_ch1_enum)
4954 },
4955 {
4956 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4957 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4958 .name = "MultiMedia28 Channel2",
4959 .info = msm_pcm_channel_input_be_info,
4960 .get = msm_pcm_channel_input_be_get,
4961 .put = msm_pcm_channel_input_be_put,
4962 .private_value = (unsigned long)&(mm28_ch2_enum)
4963 },
4964 {
4965 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4966 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4967 .name = "MultiMedia29 Channel1",
4968 .info = msm_pcm_channel_input_be_info,
4969 .get = msm_pcm_channel_input_be_get,
4970 .put = msm_pcm_channel_input_be_put,
4971 .private_value = (unsigned long)&(mm29_ch1_enum)
4972 },
4973 {
4974 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4975 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4976 .name = "MultiMedia29 Channel2",
4977 .info = msm_pcm_channel_input_be_info,
4978 .get = msm_pcm_channel_input_be_get,
4979 .put = msm_pcm_channel_input_be_put,
4980 .private_value = (unsigned long)&(mm29_ch2_enum)
4981 },
4982 {
4983 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4984 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304985 .name = "MultiMedia30 Channel1",
4986 .info = msm_pcm_channel_input_be_info,
4987 .get = msm_pcm_channel_input_be_get,
4988 .put = msm_pcm_channel_input_be_put,
4989 .private_value = (unsigned long)&(mm30_ch1_enum)
4990 },
4991 {
4992 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4993 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4994 .name = "MultiMedia30 Channel2",
4995 .info = msm_pcm_channel_input_be_info,
4996 .get = msm_pcm_channel_input_be_get,
4997 .put = msm_pcm_channel_input_be_put,
4998 .private_value = (unsigned long)&(mm30_ch2_enum)
4999 },
5000 {
5001 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5002 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305003 .name = "MultiMedia1 Output Channel Map",
5004 .info = msm_pcm_channel_output_map_info,
5005 .get = msm_pcm_channel_output_map_get,
5006 .put = msm_pcm_channel_output_map_put,
5007 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5008 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5009 },
5010 {
5011 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5012 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5013 .name = "MultiMedia2 Output Channel Map",
5014 .info = msm_pcm_channel_output_map_info,
5015 .get = msm_pcm_channel_output_map_get,
5016 .put = msm_pcm_channel_output_map_put,
5017 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5018 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5019 },
5020 {
5021 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5022 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5023 .name = "MultiMedia3 Output Channel Map",
5024 .info = msm_pcm_channel_output_map_info,
5025 .get = msm_pcm_channel_output_map_get,
5026 .put = msm_pcm_channel_output_map_put,
5027 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5028 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5029 },
5030 {
5031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5032 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5033 .name = "MultiMedia4 Output Channel Map",
5034 .info = msm_pcm_channel_output_map_info,
5035 .get = msm_pcm_channel_output_map_get,
5036 .put = msm_pcm_channel_output_map_put,
5037 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5038 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5039 },
5040 {
5041 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5042 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5043 .name = "MultiMedia5 Output Channel Map",
5044 .info = msm_pcm_channel_output_map_info,
5045 .get = msm_pcm_channel_output_map_get,
5046 .put = msm_pcm_channel_output_map_put,
5047 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5048 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5049 },
5050 {
5051 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5052 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5053 .name = "MultiMedia6 Output Channel Map",
5054 .info = msm_pcm_channel_output_map_info,
5055 .get = msm_pcm_channel_output_map_get,
5056 .put = msm_pcm_channel_output_map_put,
5057 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5058 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5059 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305060 {
5061 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5062 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5063 .name = "MultiMedia18 Output Channel Map",
5064 .info = msm_pcm_channel_output_map_info,
5065 .get = msm_pcm_channel_output_map_get,
5066 .put = msm_pcm_channel_output_map_put,
5067 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5068 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5069 },
5070 {
5071 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5072 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5073 .name = "MultiMedia19 Output Channel Map",
5074 .info = msm_pcm_channel_output_map_info,
5075 .get = msm_pcm_channel_output_map_get,
5076 .put = msm_pcm_channel_output_map_put,
5077 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5078 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5079 },
5080 {
5081 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5082 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5083 .name = "MultiMedia28 Output Channel Map",
5084 .info = msm_pcm_channel_output_map_info,
5085 .get = msm_pcm_channel_output_map_get,
5086 .put = msm_pcm_channel_output_map_put,
5087 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5088 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5089 },
5090 {
5091 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5092 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5093 .name = "MultiMedia29 Output Channel Map",
5094 .info = msm_pcm_channel_output_map_info,
5095 .get = msm_pcm_channel_output_map_get,
5096 .put = msm_pcm_channel_output_map_put,
5097 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5098 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5099 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305100 {
5101 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5102 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5103 .name = "MultiMedia30 Output Channel Map",
5104 .info = msm_pcm_channel_output_map_info,
5105 .get = msm_pcm_channel_output_map_get,
5106 .put = msm_pcm_channel_output_map_put,
5107 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5108 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5109 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305111
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5113 struct snd_ctl_elem_value *ucontrol)
5114{
5115 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5116 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5117 ucontrol->value.integer.value[0]);
5118 return 0;
5119}
5120
5121static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5122 struct snd_ctl_elem_value *ucontrol)
5123{
5124 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5125 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5126 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5127 return 0;
5128}
5129
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305130static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5131 struct snd_ctl_elem_value *ucontrol)
5132{
5133 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5134 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5135 ucontrol->value.integer.value[0]);
5136 return 0;
5137}
5138
5139static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5140 struct snd_ctl_elem_value *ucontrol)
5141{
5142 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5143 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5144 __func__, msm_ec_ref_ch_downmixed);
5145 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5146 return 0;
5147}
5148
5149static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5150 struct snd_ctl_elem_value *ucontrol)
5151{
5152 int i = 0, ret = 0;
5153 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5154 int out_channel_idx = ((struct soc_multi_mixer_control *)
5155 kcontrol->private_value)->shift;
5156
5157 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5158 weights[i] = ucontrol->value.integer.value[i];
5159
5160 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5161 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5162 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5163 return ret;
5164}
5165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305167 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5168 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169
5170static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5171 struct snd_ctl_elem_value *ucontrol)
5172{
5173 switch (msm_ec_ref_bit_format) {
5174 case SNDRV_PCM_FORMAT_S24_LE:
5175 ucontrol->value.integer.value[0] = 2;
5176 break;
5177 case SNDRV_PCM_FORMAT_S16_LE:
5178 ucontrol->value.integer.value[0] = 1;
5179 break;
5180 default:
5181 ucontrol->value.integer.value[0] = 0;
5182 break;
5183 }
5184 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5185 __func__, ucontrol->value.integer.value[0]);
5186 return 0;
5187}
5188
5189static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5190 struct snd_ctl_elem_value *ucontrol)
5191{
5192 u16 bit_width = 0;
5193
5194 switch (ucontrol->value.integer.value[0]) {
5195 case 2:
5196 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5197 break;
5198 case 1:
5199 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5200 break;
5201 default:
5202 msm_ec_ref_bit_format = 0;
5203 break;
5204 }
5205
5206 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5207 bit_width = 16;
5208 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5209 bit_width = 24;
5210
5211 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5212 __func__, msm_ec_ref_bit_format);
5213 adm_ec_ref_rx_bit_width(bit_width);
5214 return 0;
5215}
5216
5217static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5218
5219static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5220 struct snd_ctl_elem_value *ucontrol)
5221{
5222 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5223 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5224 __func__, ucontrol->value.integer.value[0]);
5225 return 0;
5226}
5227
5228static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5229 struct snd_ctl_elem_value *ucontrol)
5230{
5231 switch (ucontrol->value.integer.value[0]) {
5232 case 0:
5233 msm_ec_ref_sampling_rate = 0;
5234 break;
5235 case 1:
5236 msm_ec_ref_sampling_rate = 8000;
5237 break;
5238 case 2:
5239 msm_ec_ref_sampling_rate = 16000;
5240 break;
5241 case 3:
5242 msm_ec_ref_sampling_rate = 32000;
5243 break;
5244 case 4:
5245 msm_ec_ref_sampling_rate = 44100;
5246 break;
5247 case 5:
5248 msm_ec_ref_sampling_rate = 48000;
5249 break;
5250 case 6:
5251 msm_ec_ref_sampling_rate = 96000;
5252 break;
5253 case 7:
5254 msm_ec_ref_sampling_rate = 192000;
5255 break;
5256 case 8:
5257 msm_ec_ref_sampling_rate = 384000;
5258 break;
5259 default:
5260 msm_ec_ref_sampling_rate = 48000;
5261 break;
5262 }
5263 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5264 __func__, msm_ec_ref_sampling_rate);
5265 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5266 return 0;
5267}
5268
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305269static int get_ec_ref_port_id(int value, int *index)
5270{
5271 int port_id;
5272
5273 switch (value) {
5274 case 0:
5275 *index = 0;
5276 port_id = AFE_PORT_INVALID;
5277 break;
5278 case 1:
5279 *index = 1;
5280 port_id = SLIMBUS_0_RX;
5281 break;
5282 case 2:
5283 *index = 2;
5284 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5285 break;
5286 case 3:
5287 *index = 3;
5288 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5289 break;
5290 case 4:
5291 *index = 4;
5292 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5293 break;
5294 case 5:
5295 *index = 5;
5296 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5297 break;
5298 case 6:
5299 *index = 6;
5300 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5301 break;
5302 case 7:
5303 *index = 7;
5304 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5305 break;
5306 case 9:
5307 *index = 9;
5308 port_id = SLIMBUS_5_RX;
5309 break;
5310 case 10:
5311 *index = 10;
5312 port_id = SLIMBUS_1_TX;
5313 break;
5314 case 11:
5315 *index = 11;
5316 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5317 break;
5318 case 12:
5319 *index = 12;
5320 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5321 break;
5322 case 13:
5323 *index = 13;
5324 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5325 break;
5326 case 14:
5327 *index = 14;
5328 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5329 break;
5330 case 15:
5331 *index = 15;
5332 port_id = SLIMBUS_6_RX;
5333 break;
5334 case 16:
5335 *index = 16;
5336 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5337 break;
5338 case 17:
5339 *index = 17;
5340 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5341 break;
5342 case 18:
5343 *index = 18;
5344 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5345 break;
5346 case 19:
5347 *index = 19;
5348 port_id = AFE_PORT_ID_USB_RX;
5349 break;
5350 case 20:
5351 *index = 20;
5352 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5353 break;
5354 case 21:
5355 *index = 21;
5356 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5357 break;
5358 case 22:
5359 *index = 22;
5360 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5361 break;
5362 case 23:
5363 *index = 23;
5364 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5365 break;
5366 case 24:
5367 *index = 24;
5368 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5369 break;
5370 case 25:
5371 *index = 25;
5372 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5373 break;
5374 case 26:
5375 *index = 26;
5376 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5377 break;
5378 case 27:
5379 *index = 27;
5380 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5381 break;
5382 case 28:
5383 *index = 28;
5384 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5385 break;
5386 case 29:
5387 *index = 29;
5388 port_id = SLIMBUS_7_RX;
5389 break;
5390 case 30:
5391 *index = 30;
5392 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5393 break;
5394 case 31:
5395 *index = 31;
5396 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5397 break;
5398 case 32:
5399 *index = 32;
5400 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5401 break;
5402 case 33:
5403 *index = 33;
5404 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5405 break;
5406 case 34:
5407 *index = 34;
5408 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5409 break;
5410 case 35:
5411 *index = 35;
5412 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5413 break;
5414 case 36:
5415 *index = 36;
5416 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5417 break;
5418 default:
5419 *index = 0; /* NONE */
5420 pr_err("%s: Invalid value %d\n", __func__, value);
5421 port_id = AFE_PORT_INVALID;
5422 break;
5423 }
5424
5425 return port_id;
5426}
5427
5428static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5429 struct snd_ctl_elem_value *ucontrol)
5430{
5431 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5432 mutex_lock(&routing_lock);
5433 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5434 mutex_unlock(&routing_lock);
5435
5436 return 0;
5437}
5438
5439static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5440 struct snd_ctl_elem_value *ucontrol)
5441{
5442 int value = ucontrol->value.integer.value[0];
5443
5444 mutex_lock(&routing_lock);
5445 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5446 &afe_loopback_tx_port_index);
5447 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5448 __func__, afe_loopback_tx_port_index);
5449 mutex_unlock(&routing_lock);
5450
5451 return 0;
5452}
5453
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5455 "32000", "44100", "48000", "96000", "192000", "384000"};
5456
5457static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305458 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
5460 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
5461};
5462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5464 "PRI_MI2S_TX", "SEC_MI2S_TX",
5465 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5466 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5467 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5468 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305469 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
Vignesh Kulothunganf86a3552019-07-11 15:46:25 -07005470 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305471 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005472 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305473 "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 -07005474 "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 +05305475};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476
5477static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5478 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5479};
5480
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305481static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5482 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5483 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5484 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5485 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5486 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5487 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5488 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5489 msm_route_ec_ref_params_enum[0],
5490 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5491 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5492 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5493 msm_ec_ref_chmixer_weights_put),
5494 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5495 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5496 msm_ec_ref_chmixer_weights_put),
5497 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5498 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5499 msm_ec_ref_chmixer_weights_put),
5500 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5501 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5502 msm_ec_ref_chmixer_weights_put),
5503 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5504 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5505 msm_ec_ref_chmixer_weights_put),
5506 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5507 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5508 msm_ec_ref_chmixer_weights_put),
5509 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5510 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5511};
5512
5513static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5514 struct snd_ctl_elem_value *ucontrol)
5515{
5516 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5517 mutex_lock(&routing_lock);
5518 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5519 mutex_unlock(&routing_lock);
5520
5521 return 0;
5522}
5523
5524static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5525 struct snd_ctl_elem_value *ucontrol)
5526{
5527 int value = ucontrol->value.integer.value[0];
5528 struct snd_soc_dapm_widget *widget =
5529 snd_soc_dapm_kcontrol_widget(kcontrol);
5530 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5531 struct snd_soc_dapm_update *update = NULL;
5532
5533 mutex_lock(&routing_lock);
5534 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5535 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5536 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5537 __func__, msm_route_ec_ref_rx);
5538 mutex_unlock(&routing_lock);
5539
5540 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5541 msm_route_ec_ref_rx, e, update);
5542 return 0;
5543}
5544
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305545static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5546 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5547 msm_route_ec_ref_rx_enum[0],
5548 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5549
5550static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5551 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5552 msm_route_ec_ref_rx_enum[0],
5553 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5554
5555static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5556 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5557 msm_route_ec_ref_rx_enum[0],
5558 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5559
5560static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5561 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5562 msm_route_ec_ref_rx_enum[0],
5563 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5564
5565static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5566 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5567 msm_route_ec_ref_rx_enum[0],
5568 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5569
5570static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5571 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5572 msm_route_ec_ref_rx_enum[0],
5573 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5574
5575static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5576 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5577 msm_route_ec_ref_rx_enum[0],
5578 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5579
5580static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5581 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5582 msm_route_ec_ref_rx_enum[0],
5583 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5584
Asish Bhattacharya34504582017-08-08 12:55:01 +05305585static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5586 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5587 msm_route_ec_ref_rx_enum[0],
5588 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5589
Laxminath Kasam38070be2017-08-17 18:21:59 +05305590static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5591 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5592 msm_route_ec_ref_rx_enum[0],
5593 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5594
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5596 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5597 msm_route_ec_ref_rx_enum[0],
5598 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5599
5600static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5601 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5602 msm_route_ec_ref_rx_enum[0],
5603 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5604
5605static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5606 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5607 msm_route_ec_ref_rx_enum[0],
5608 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5609
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305610static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5611 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5612 msm_route_ec_ref_rx_enum[0],
5613 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5614
5615static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5616 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5617 msm_route_ec_ref_rx_enum[0],
5618 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5619
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305620static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5621 struct snd_ctl_elem_value *ucontrol)
5622{
5623 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5624
5625 mutex_lock(&routing_lock);
5626 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5627 mutex_unlock(&routing_lock);
5628 return 0;
5629}
5630
5631static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5632 struct snd_ctl_elem_value *ucontrol)
5633{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305634 struct snd_soc_dapm_widget *widget =
5635 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305636 int mux = ucontrol->value.enumerated.item[0];
5637 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5638 int ret = 1;
5639 bool state = true;
5640 uint16_t ext_ec_ref_port_id;
5641 struct snd_soc_dapm_update *update = NULL;
5642
5643 if (mux >= e->items) {
5644 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5645 return -EINVAL;
5646 }
5647
5648 mutex_lock(&routing_lock);
5649 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5650
5651 switch (msm_route_ext_ec_ref) {
5652 case EXT_EC_REF_PRI_MI2S_TX:
5653 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5654 break;
5655 case EXT_EC_REF_SEC_MI2S_TX:
5656 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5657 break;
5658 case EXT_EC_REF_TERT_MI2S_TX:
5659 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5660 break;
5661 case EXT_EC_REF_QUAT_MI2S_TX:
5662 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5663 break;
5664 case EXT_EC_REF_QUIN_MI2S_TX:
5665 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5666 break;
5667 case EXT_EC_REF_SLIM_1_TX:
5668 ext_ec_ref_port_id = SLIMBUS_1_TX;
5669 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005670 case EXT_EC_REF_SEC_TDM_TX:
5671 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5672 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305673 case EXT_EC_REF_NONE:
5674 default:
5675 ext_ec_ref_port_id = AFE_PORT_INVALID;
5676 state = false;
5677 break;
5678 }
5679
5680 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5681 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5682
5683 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5684 mutex_unlock(&routing_lock);
5685 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5686 update);
5687 } else {
5688 ret = -EINVAL;
5689 mutex_unlock(&routing_lock);
5690 }
5691 return ret;
5692}
5693
5694static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5695 "SEC_MI2S_TX", "TERT_MI2S_TX",
5696 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005697 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305698
5699static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5700 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5701};
5702
5703static const struct snd_kcontrol_new voc_ext_ec_mux =
5704 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5705 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5706
5707
5708static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005709 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005713 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005717 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305719 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005721 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305723 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005725 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005729 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305785 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_PRI_I2S_RX,
5787 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305797 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_PRI_I2S_RX,
5799 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801};
5802
5803static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005804 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305806 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005808 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005812 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005816 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305818 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005820 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005824 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005828 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005832 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005836 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005840 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005844 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005848 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005852 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005856 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305880 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_SEC_I2S_RX,
5882 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005888 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305892 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_SEC_I2S_RX,
5894 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305896};
5897
Ralf Herzc8701f72018-06-20 11:37:35 +02005898static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005899 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005900 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005903 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005904 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005907 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005908 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005911 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005912 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005915 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005916 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005919 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005920 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305921 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005923 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005924 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305925 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005927 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005928 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005931 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005932 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005935 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005936 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005939 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005940 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305941 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005943 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005944 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305945 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005947 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005948 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005951 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005952 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305953 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005955 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005956 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305957 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005959 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005960 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005963 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005964 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005968 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005972 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305975 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5977 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005979 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005980 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305981 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005983 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005984 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5985 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305987 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5989 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02005991};
5992
5993static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
5994 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5996 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6000 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6004 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6008 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
6010 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6012 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
6014 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6016 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
6018 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6020 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
6022 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6024 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
6026 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6028 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
6030 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6032 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
6034 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6036 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6040 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6044 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6048 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6052 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6056 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6060 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6064 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6068 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306070 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6072 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006074 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6076 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306080 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306082 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6084 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306086};
6087
6088static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006089 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006093 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306095 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006097 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006101 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306103 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006105 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006109 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306111 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006113 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306115 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006117 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306119 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006121 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306123 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006125 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306127 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006129 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306131 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006133 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306135 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006137 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306139 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006141 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306143 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006145 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306147 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006149 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306151 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306153 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6155 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306157};
6158
6159static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006160 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006164 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006168 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006172 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306174 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006176 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306178 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006180 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306182 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006184 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306186 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006188 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306190 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006192 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306194 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006196 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306198 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006200 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306202 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006204 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306206 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006208 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306210 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006212 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306214 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006216 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306218 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006220 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306222 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006224 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306226 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006228 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306230 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006232 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6233 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306234 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6235 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306236 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6237 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6238 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006240 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306242 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006244 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306246 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306248 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6250 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306252};
6253
6254static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006255 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306257 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006259 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306261 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006263 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006267 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306269 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006271 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006275 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306277 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006279 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306281 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006283 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006287 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306289 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006291 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306293 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006295 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306297 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006299 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6300 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306301 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006303 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6304 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306305 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006307 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6308 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306309 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006311 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306313 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006315 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306317 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006319 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306321 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006323 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306325 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006327 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306329 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306331 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6333 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006335 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306337 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006339 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306341 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306343 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6345 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306347};
6348
6349static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006350 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306352 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006354 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306356 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006358 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306360 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006362 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006366 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306368 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006370 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6371 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306372 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006374 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6375 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306376 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006378 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6379 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306380 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006382 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6383 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306384 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006386 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6387 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306388 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006390 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6391 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306392 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006394 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6395 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306396 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006398 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6399 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306400 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006402 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6403 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306404 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006406 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306408 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006410 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306412 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006414 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306416 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006418 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306420 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006422 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306424 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306426 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_MI2S_RX,
6428 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306438 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_MI2S_RX,
6440 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306442};
6443
6444static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006445 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6446 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306447 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006449 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6450 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306451 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006453 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306455 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006457 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306459 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006461 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6462 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306463 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006465 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6466 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306467 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006469 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6470 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306471 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006473 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6474 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306475 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006477 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6478 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306479 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006481 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6482 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306483 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006485 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6486 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306487 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006489 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6490 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306491 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006493 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6494 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306495 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306521 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6523 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306533 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6535 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537};
6538
6539static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006540 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6541 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006544 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6545 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006548 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6549 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006552 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6553 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006556 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6557 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006560 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6561 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006564 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6565 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306566 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006568 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6569 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006572 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6573 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306574 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006576 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6577 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306578 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006580 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6581 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306582 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006588 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006592 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306616 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6618 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306628 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6630 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306632
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306633};
6634
Karthikeyan Manic3700752019-03-11 18:33:53 -07006635static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6636 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
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_SENARY_MI2S_RX,
6698 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
6700 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6702 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6706 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
6708 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6710 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
6712 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6714 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
6716 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6718 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
6720 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6722 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
6724
6725};
6726
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006728 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006732 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006736 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006740 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006744 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006748 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306750 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006752 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306754 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006756 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306758 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006760 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306762 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006764 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306766 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006768 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306796 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6798 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306808 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6810 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812};
6813
6814static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006815 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6816 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306817 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6818 msm_routing_put_audio_mixer),
6819};
6820
6821static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006826 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006830 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306832 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006838 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306840 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006842 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306844 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006846 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6847 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306848 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006850 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6851 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306852 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006854 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6855 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306856 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006858 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6859 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006862 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306864 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006866 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006870 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006874 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006878 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006882 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006886 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306898 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6900 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306910 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6912 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914};
6915
6916static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006917 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006941 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006945 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006949 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006953 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006961 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006965 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306993 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_PRI_MI2S_RX,
6995 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307005 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_PRI_MI2S_RX,
7007 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307009
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010};
7011
7012static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007065 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
7077};
7078
7079static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
7144};
7145
Ralf Herz29e07132019-07-26 15:15:21 +02007146static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7147 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
7151 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7153 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
7155 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
7159 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7161 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
7163 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
7167 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
7171 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7173 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
7175 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
7179 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7181 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
7183 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
7187 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7189 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
7191 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7193 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
7195 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7197 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
7199 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7201 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
7203 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7205 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
7207 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7209 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
7211 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7213 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
7215 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7217 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
7219 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7221 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
7223 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7225 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
7227 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7229 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
7231 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7233 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
7235
7236};
7237
7238static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7239 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
7243 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
7247 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
7251 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7253 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
7255 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
7259 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
7263 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7265 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
7267 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
7271 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
7275 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7277 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
7279 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7281 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
7283 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7285 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
7287 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7289 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
7291 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7293 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
7295 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7297 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
7299 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7301 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
7303 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
7307 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7309 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
7311 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7313 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
7315 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7317 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
7319 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7321 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
7323 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7325 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
7327};
7328
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307329static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007346 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007358 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307360 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007374 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307376 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007378 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307380 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007382 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307384 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007386 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007390 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7391 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007394 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7395 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007398 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7399 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307406 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_HDMI_RX,
7408 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307418 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_HDMI_RX,
7420 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422};
7423
7424static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307489 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7491 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493};
7494
Karthikeyan Mani57550082018-05-03 18:43:58 -07007495static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7496 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7498 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
7500 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7502 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
7504 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7506 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
7508 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7510 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
7512 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7514 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
7516 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7518 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
7520 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7522 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
7524 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7526 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
7528 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7530 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
7532 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7534 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
7536 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7538 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
7540 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7542 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
7544 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7546 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
7548 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7550 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
7552 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7554 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
7556 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7558 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307560 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7562 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007564};
7565
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 /* incall music delivery mixer */
7567static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
7584};
7585
7586static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
7603};
7604
7605static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
7622};
7623
7624static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307689 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7691 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307693};
7694
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307695static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
7700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
7704 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
7708 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
7712 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7714 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
7716 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
7720 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7722 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
7724 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
7728 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
7732 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
7736 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7738 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
7740 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7742 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
7744 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7746 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
7748 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7750 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
7752 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7754 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
7756 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307760 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7762 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307764};
7765
7766static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7767 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7769 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7773 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
7779 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7781 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
7783 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
7787 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7789 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
7791 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7793 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
7795 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7797 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
7799 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7801 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7805 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
7807 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7809 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
7811 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7813 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
7815 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7817 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
7819 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7821 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
7823 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7825 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
7827 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307831 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7833 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307835};
7836
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307837static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7838 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7840 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
7850 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
7854 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7856 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
7858 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
7862 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7864 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
7866 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7868 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
7870 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7872 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
7878 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7880 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
7882 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7884 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
7886 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7888 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
7890 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7892 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
7894 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7896 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
7898 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307902 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7904 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307906};
7907
7908static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7909 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7915 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
7921 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
7925 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
7929 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7931 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
7933 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7935 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
7937 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
7941 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7943 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7947 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
7949 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7951 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
7953 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7955 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
7957 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7959 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
7961 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7963 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
7965 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7967 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
7969 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307973 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7975 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307977};
7978
7979static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
7980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
7984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
7988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
7992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
7996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
8000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
8004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
8008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
8012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
8016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
8020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
8024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
8028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
8032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
8036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
8040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308044 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8046 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308048};
8049
8050static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8051 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8057 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8061 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
8063 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8069 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
8071 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8073 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
8075 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8077 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
8079 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
8083 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
8091 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8093 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
8095 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8097 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
8099 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8101 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
8103 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8105 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
8107 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8109 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
8111 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8113 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308115 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8117 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308119};
8120
8121static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8122 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
8126 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8128 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
8130 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
8134 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8136 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
8138 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
8142 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
8146 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8148 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
8150 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8152 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
8154 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8156 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
8158 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
8162 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8164 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
8166 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8168 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
8170 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8172 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
8174 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8176 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
8178 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8180 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
8182 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308186 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8188 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308190};
8191
8192static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8193 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
8197 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8199 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
8201 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8203 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
8205 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8207 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
8209 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
8213 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8215 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
8217 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8219 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
8221 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8223 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
8225 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8227 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
8229 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8231 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
8233 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8235 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
8237 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8239 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
8241 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8243 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
8245 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8247 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
8249 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8251 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
8253 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8255 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308257 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8259 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308261};
8262
8263static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8264 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8266 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
8268 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
8272 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8274 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
8276 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
8280 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
8284 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
8288 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8290 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
8292 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
8296 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8298 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
8300 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
8304 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8306 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
8308 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8310 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
8312 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8314 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
8316 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8318 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
8320 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8322 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
8324 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308328 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8330 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308332};
8333
8334static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8335 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
8339 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8341 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
8343 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
8347 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8349 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
8351 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
8355 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8357 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
8359 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8361 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
8363 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
8367 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
8371 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8373 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
8375 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8377 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
8379 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8381 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
8383 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8385 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
8387 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8389 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
8391 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8393 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
8395 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8397 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308399 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8401 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308403};
8404
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308470 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8472 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474};
8475
Surendar Karka3ef3d812018-09-28 18:52:35 +05308476static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8477 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8479 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
8481 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8483 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
8485 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
8489 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8491 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
8493 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
8497 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
8501 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8503 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
8505 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8507 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
8509 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8511 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
8513 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8515 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
8517 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8519 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
8521 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8523 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
8525 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8527 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
8529 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8531 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
8533 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8535 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
8537 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8539 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
8541 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8543 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
8545};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008547 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008551 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308553 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008555 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008567 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008571 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308573 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008575 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008579 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8580 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308581 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008583 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8584 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308585 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008587 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8588 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308589 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008591 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8592 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008595 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8596 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008599 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308601 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308611 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_USB_RX,
8613 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615};
8616
8617static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308694 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8696 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308706 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8708 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308710};
8711
8712static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308777 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8779 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308781};
8782
8783static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308860 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_INT_FM_RX,
8862 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308872 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_INT_FM_RX,
8874 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876};
8877
8878static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308955 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_AFE_PCM_RX,
8957 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308967 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_AFE_PCM_RX,
8969 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971};
8972
8973static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009050 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_AUXPCM_RX,
9052 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309054 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_AUXPCM_RX,
9056 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309066 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_AUXPCM_RX,
9068 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309070};
9071
9072static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009149 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9151 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309153 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9155 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309165 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9167 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309169};
9170
9171static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309236 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9238 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309240};
9241
9242static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309307 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9309 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309311};
9312
Rohit Kumara5077932017-09-10 22:05:05 +05309313static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309378 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9380 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309382};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009383
9384static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9385 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
9389 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
9393 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
9397 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9399 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
9401 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9403 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
9405 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
9409 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9411 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
9413 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9415 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
9417 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9419 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
9421 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9423 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
9425 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9427 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
9429 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9431 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
9433 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9435 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
9437 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9439 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
9441 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9443 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
9445 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9447 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
9449 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9451 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
9453};
9454
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309455static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009460 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009464 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309466 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009468 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009472 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009484 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009520 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9522 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009524 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9526 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309528};
9529
9530static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009595 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9597 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009599 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9601 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603};
9604
9605static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009670 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9672 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009674 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9676 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678};
9679
9680static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009745 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9747 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009749 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9751 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753};
9754
9755static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
9820};
9821
9822static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009887 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9889 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009891 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9893 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309895};
9896
9897static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009962 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9964 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009966 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9968 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970};
9971
9972static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010037 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10039 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010041 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10043 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045};
10046
10047static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010112 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10114 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010116 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10118 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120};
10121
10122static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010135 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
10187};
10188
10189static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010254 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10256 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010258 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10260 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010262};
10263
10264static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
10329};
10330
10331static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010396 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10398 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010400 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10402 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404};
10405
10406static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010415 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010417 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010419 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010423 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010427 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010429 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010431 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010433 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010435 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010439 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010443 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010445 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010471 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10473 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010475 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10477 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479};
10480
10481static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010518 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010546 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10548 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010550 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10552 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010554};
10555
10556static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010621 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10623 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010625 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10627 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010629};
10630
10631static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010668 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010670 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010700 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10702 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010704 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10706 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010708};
10709
10710static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010749 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010753 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010757 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010759 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010761 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
10775};
10776
10777static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010782 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010784 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("MultiMedia3", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010794 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010796 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010798 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010800 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010836 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010846 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10848 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010850 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10852 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010854};
10855
10856static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010865 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010869 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010871 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010873 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010877 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010879 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010881 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10882 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010883 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010885 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10886 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010889 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10890 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010891 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010893 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10894 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010895 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010897 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10898 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010899 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010901 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10902 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010903 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010905 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10906 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010907 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010909 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10910 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010911 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010913 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10914 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010915 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010925 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10927 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010929 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10931 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010933};
10934
10935static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010936 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010938 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010940 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010944 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010948 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10949 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010950 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010952 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010954 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010956 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010960 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010962 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010964 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010966 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010968 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010970 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010972 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010974 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010976 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010978 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010980 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10981 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010982 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010984 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10985 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010986 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010988 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010992 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011004 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11006 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011008 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11010 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011012};
11013
Rohit Kumara5077932017-09-10 22:05:05 +053011014static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011015 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011017 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011019 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011021 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011023 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011025 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011027 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011031 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011033 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011037 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011039 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011041 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011043 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011051 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011053 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011055 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011057 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011059 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011061 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011063 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011065 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011079 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011081 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011083 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11085 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011087 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11089 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011091};
11092
11093static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011104 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011108 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011112 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011130 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011132 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011134 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011136 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011138 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011140 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011144 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011148 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011152 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
11158};
11159
11160static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011161 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011165 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011167 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011169 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011171 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011173 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011175 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011177 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11178 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011181 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011183 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011185 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011187 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011189 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011191 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011193 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011195 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011197 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011199 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011201 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011203 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011205 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11206 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011207 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011209 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011211 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011213 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11214 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011215 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011217 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11218 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011219 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011221 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011223 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011225 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11226 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011227 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11228 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011229 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11230 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11231 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011233 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11235 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011237};
11238
11239static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011240 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11241 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011242 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011244 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11245 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011246 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011248 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011250 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011252 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("MultiMedia5", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011258 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011260 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11261 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011264 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11265 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011266 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011268 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011270 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011272 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11273 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011274 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011276 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011280 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11281 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011282 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011284 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11285 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011286 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011288 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11289 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011290 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011292 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11293 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011294 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011296 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011298 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011300 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11301 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011302 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011304 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11305 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011306 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011308 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11310 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011312 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11314 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011316};
11317
11318static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011355 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011379 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011381 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011383 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011385 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011387 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11389 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011391 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11393 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011395};
11396
Karthikeyan Manic3700752019-03-11 18:33:53 -070011397static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11398 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
11406 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
11410 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11423 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11424 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11425 msm_routing_put_audio_mixer),
11426 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11427 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11428 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11433 msm_routing_put_audio_mixer),
11434 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
11438 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11440 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
11442 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11444 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
11446 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11448 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
11450 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11452 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11453 msm_routing_put_audio_mixer),
11454 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11456 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
11458 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11460 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
11462 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11464 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
11466 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11468 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470};
11471
11472static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
11477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
11481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
11485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
11493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
11497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11500 msm_routing_put_audio_mixer),
11501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11504 msm_routing_put_audio_mixer),
11505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11512 msm_routing_put_audio_mixer),
11513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
11517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
11521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
11525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
11529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
11533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
11537};
11538
11539static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11540 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11543 msm_routing_put_audio_mixer),
11544 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
11548 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
11552 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
11556 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11557 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11559 msm_routing_put_audio_mixer),
11560 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11563 msm_routing_put_audio_mixer),
11564 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11565 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11566 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11567 msm_routing_put_audio_mixer),
11568 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11571 msm_routing_put_audio_mixer),
11572 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11574 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11575 msm_routing_put_audio_mixer),
11576 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11577 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11578 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
11580 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11582 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11583 msm_routing_put_audio_mixer),
11584 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11586 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
11588 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11590 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
11592 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11594 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
11596 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11598 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
11600 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
11604 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11606 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
11608 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11610 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
11612};
11613
11614static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11615 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11617 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11621 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
11623 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
11627 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11629 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
11631 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11633 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
11635 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11637 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
11639 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11640 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11641 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11642 msm_routing_put_audio_mixer),
11643 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11644 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11646 msm_routing_put_audio_mixer),
11647 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11649 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11650 msm_routing_put_audio_mixer),
11651 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11652 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11653 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11654 msm_routing_put_audio_mixer),
11655 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11656 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11657 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11658 msm_routing_put_audio_mixer),
11659 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11660 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11661 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11662 msm_routing_put_audio_mixer),
11663 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11664 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11665 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11666 msm_routing_put_audio_mixer),
11667 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11668 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11669 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11670 msm_routing_put_audio_mixer),
11671 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11673 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11674 msm_routing_put_audio_mixer),
11675 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11677 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11678 msm_routing_put_audio_mixer),
11679 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11680 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11681 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11682 msm_routing_put_audio_mixer),
11683 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11684 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11685 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11686 msm_routing_put_audio_mixer),
11687};
11688
11689static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
11710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
11714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
11726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
11730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
11734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
11738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
11742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
11754 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11756 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11760 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
11762};
11763
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011764static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011765 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011785 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011789 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011791 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011793 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011797 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011801 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011805 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011809 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011813 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011817 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011821 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011825 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011829 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011833 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011837 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011841 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011845 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011849 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011853 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011857 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011861 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11863 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011865 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011867 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011869 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011871 MSM_FRONTEND_DAI_MULTIMEDIA1, 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_TDM_TX_2", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011875 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011877 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011879 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011881 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011883 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011885 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011889 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011891 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011893 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011895 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011897 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011899 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011901 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011903 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011905 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011909 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011913 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11914 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011915 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011917 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011921 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11922 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011923 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011925 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11926 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011927 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011929 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011933 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11934 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011935 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011937 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11938 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011939 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011941 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11942 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011943 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11944 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011945 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11946 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11947 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11948 msm_routing_put_audio_mixer),
11949 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11950 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11951 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11952 msm_routing_put_audio_mixer),
11953 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11954 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11955 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11956 msm_routing_put_audio_mixer),
11957 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11958 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11959 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011961 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011969 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011971 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11972 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011973 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11974 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11976 msm_routing_put_audio_mixer),
11977 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11978 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11979 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11980 msm_routing_put_audio_mixer),
11981 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11982 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11983 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11984 msm_routing_put_audio_mixer),
11985 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11987 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
11989 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11991 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11992 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011993 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11994 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11995 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11996 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011997 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11998 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11999 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12000 msm_routing_put_audio_mixer),
12001 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12002 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12003 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12004 msm_routing_put_audio_mixer),
12005 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12007 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12008 msm_routing_put_audio_mixer),
12009 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12011 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
12013 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12015 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
12017 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12019 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012021 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
12025 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12027 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012029 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12031 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012033 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12035 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012037};
12038
12039static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012040 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012044 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012048 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012052 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012056 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012060 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012068 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012086 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012088 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12090 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012096 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012098 MSM_FRONTEND_DAI_MULTIMEDIA2, 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_TDM_TX_2", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012102 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012106 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012110 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012112 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012116 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012118 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012120 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012122 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012124 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012126 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012128 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012130 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012132 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012134 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012136 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012140 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012142 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012144 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012146 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012148 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012150 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012152 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012154 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12157 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012158 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012162 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012164 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12165 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012166 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012170 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12171 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012172 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12174 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12175 msm_routing_put_audio_mixer),
12176 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12178 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
12180 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12182 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12183 msm_routing_put_audio_mixer),
12184 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12186 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012188 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12189 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012190 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012192 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12193 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012194 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12195 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012196 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12198 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
12200 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12202 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
12204 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12206 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
12208 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12210 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
12212 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12214 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12215 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012216 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12218 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12219 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012220 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12222 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12223 msm_routing_put_audio_mixer),
12224 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12226 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12227 msm_routing_put_audio_mixer),
12228 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12230 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12231 msm_routing_put_audio_mixer),
12232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12234 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12235 msm_routing_put_audio_mixer),
12236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12238 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
12240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12242 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012244 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12246 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12250 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012252 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12254 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012256 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12257 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12258 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12259 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012260 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12263 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012264};
12265
12266static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012267 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012271 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12273 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012279 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012291 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012293 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012295 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12296 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012297 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012299 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012301 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012303 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012305 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012307 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12308 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012309 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12310 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012311 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12312 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12313 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012315 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12316 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012317 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012319 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12320 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012321 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012327 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012329 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012333 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012335 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012337 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012339 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012343 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012347 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012349 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012351 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012353 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012355 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012357 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012359 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012361 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012363 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012365 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012367 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12368 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012369 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012371 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12372 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012375 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12376 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012377 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012379 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12380 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012381 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012383 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012385 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012387 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12388 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012391 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012395 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12396 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012397 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012399 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012401 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012403 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12404 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012405 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012407 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12408 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012409 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12410 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012411 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12413 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12414 msm_routing_put_audio_mixer),
12415 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12416 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12417 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12418 msm_routing_put_audio_mixer),
12419 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12420 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12421 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12422 msm_routing_put_audio_mixer),
12423 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12424 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12425 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12426 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012427 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12428 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12429 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12430 msm_routing_put_audio_mixer),
12431 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12432 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12433 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12434 msm_routing_put_audio_mixer),
12435 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12436 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12437 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12438 msm_routing_put_audio_mixer),
12439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12441 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12442 msm_routing_put_audio_mixer),
12443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12445 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12446 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012447 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12449 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12450 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12454 msm_routing_put_audio_mixer),
12455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12458 msm_routing_put_audio_mixer),
12459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12461 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12462 msm_routing_put_audio_mixer),
12463 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12464 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12465 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12466 msm_routing_put_audio_mixer),
12467 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12468 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12469 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12470 msm_routing_put_audio_mixer),
12471 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12472 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12473 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12474 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012475 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12477 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12478 msm_routing_put_audio_mixer),
12479 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12480 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12481 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12482 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012483 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12484 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12485 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12486 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012487};
12488
12489static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012490 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012492 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012494 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012498 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012500 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012502 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012504 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012506 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012508 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012510 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012514 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012518 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012520 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012522 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012526 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012530 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012534 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012538 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12539 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012544 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012548 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012550 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12551 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012552 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012554 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012558 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12559 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012560 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012562 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12563 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012566 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12567 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012568 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012570 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12571 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012572 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012574 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012578 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12579 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012580 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012582 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012584 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012586 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12587 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012588 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012596 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012598 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12599 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012600 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12601 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012602 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12604 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12605 msm_routing_put_audio_mixer),
12606 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12607 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12608 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12609 msm_routing_put_audio_mixer),
12610 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12611 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12612 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12613 msm_routing_put_audio_mixer),
12614 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12615 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12616 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012618 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012626 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12627 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012628 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012630 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12631 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012634 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12635 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012636 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012638 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12639 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12641 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012642 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12643 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12644 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12645 msm_routing_put_audio_mixer),
12646 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12647 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12648 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12649 msm_routing_put_audio_mixer),
12650 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12652 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12653 msm_routing_put_audio_mixer),
12654 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12656 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12657 msm_routing_put_audio_mixer),
12658 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12660 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12661 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012662 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12664 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12665 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012666 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12667 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12668 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12669 msm_routing_put_audio_mixer),
12670 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12672 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12673 msm_routing_put_audio_mixer),
12674 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12675 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12676 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12677 msm_routing_put_audio_mixer),
12678 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12679 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12681 msm_routing_put_audio_mixer),
12682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12683 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12685 msm_routing_put_audio_mixer),
12686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12689 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012690 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12691 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12692 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12693 msm_routing_put_audio_mixer),
12694 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12695 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12697 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012698 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12700 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12701 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012702};
12703
12704static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012705 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12708 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012709 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12710 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012713 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012717 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12718 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012721 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012723 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012725 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012729 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012733 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012737 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012741 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012747 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12748 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012749 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12750 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012753 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012757 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012759 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012761 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012763 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012765 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012767 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012769 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012771 MSM_FRONTEND_DAI_MULTIMEDIA5, 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_TDM_TX_1", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012775 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012777 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012779 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012781 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012785 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012787 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012789 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012793 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012797 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12798 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012799 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012801 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012805 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012807 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012809 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012811 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012839 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012841 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012843 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012845 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012847 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12848 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012849 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12851 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12852 msm_routing_put_audio_mixer),
12853 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12855 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12856 msm_routing_put_audio_mixer),
12857 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12859 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12860 msm_routing_put_audio_mixer),
12861 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12863 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012867 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012877 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12884 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012885 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12887 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12888 msm_routing_put_audio_mixer),
12889 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12891 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12892 msm_routing_put_audio_mixer),
12893 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12896 msm_routing_put_audio_mixer),
12897 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12899 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12900 msm_routing_put_audio_mixer),
12901 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12904 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012905 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12908 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12912 msm_routing_put_audio_mixer),
12913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12915 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12916 msm_routing_put_audio_mixer),
12917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12920 msm_routing_put_audio_mixer),
12921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12924 msm_routing_put_audio_mixer),
12925 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12926 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12928 msm_routing_put_audio_mixer),
12929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12932 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012933 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12936 msm_routing_put_audio_mixer),
12937 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12938 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12939 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12940 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012941 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12943 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12944 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012945 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12946 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12948 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949};
12950
12951static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12959 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012960 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12962 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012966 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012986 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012988 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012990 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12991 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012992 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12994 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012996 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013000 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013004 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013006 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013008 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013010 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013012 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013014 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013016 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13017 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013020 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013028 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13029 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013030 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013032 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13033 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13037 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013038 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013040 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13041 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013042 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013044 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013048 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13049 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013052 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13053 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013054 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013056 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13057 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013058 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013060 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013062 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013064 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13065 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013068 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13069 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013070 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013072 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13073 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013074 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013076 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13077 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013078 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013080 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13081 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013084 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13085 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013088 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13089 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013090 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13091 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013092 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13094 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13095 msm_routing_put_audio_mixer),
13096 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13097 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13099 msm_routing_put_audio_mixer),
13100 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13103 msm_routing_put_audio_mixer),
13104 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13105 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13106 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13109 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13111 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013112 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13113 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13115 msm_routing_put_audio_mixer),
13116 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13117 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13118 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13119 msm_routing_put_audio_mixer),
13120 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13121 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13122 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13123 msm_routing_put_audio_mixer),
13124 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13125 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13127 msm_routing_put_audio_mixer),
13128 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13129 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13131 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013132 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13133 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13134 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13135 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13138 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13139 msm_routing_put_audio_mixer),
13140 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13141 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13142 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13143 msm_routing_put_audio_mixer),
13144 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13145 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13147 msm_routing_put_audio_mixer),
13148 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13149 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13151 msm_routing_put_audio_mixer),
13152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13155 msm_routing_put_audio_mixer),
13156 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13159 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013160 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13163 msm_routing_put_audio_mixer),
13164 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13165 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13167 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013168 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13171 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172};
13173
13174static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013175 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13178 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013179 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13180 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13181 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013183 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013185 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013187 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013189 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013191 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13192 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013195 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13196 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013197 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013199 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013201 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013203 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13204 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013207 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13208 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013209 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013211 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13212 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013213 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013215 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013217 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013219 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13220 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013221 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013223 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13224 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013225 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013227 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13228 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013229 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013231 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13232 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013233 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013235 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13236 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013237 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013239 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13240 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013241 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013243 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13244 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013245 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013247 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013249 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013251 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013253 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013255 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13256 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013257 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013259 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013261 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013263 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13264 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013265 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013267 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13268 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013271 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13272 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013275 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013277 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013279 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13280 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013283 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13284 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013287 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13288 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013293 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013297 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013309 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13310 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013311 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13314 msm_routing_put_audio_mixer),
13315 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13317 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13318 msm_routing_put_audio_mixer),
13319 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13322 msm_routing_put_audio_mixer),
13323 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013329 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13334 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013335 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13337 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13338 msm_routing_put_audio_mixer),
13339 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13342 msm_routing_put_audio_mixer),
13343 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13346 msm_routing_put_audio_mixer),
13347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13350 msm_routing_put_audio_mixer),
13351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13354 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013355 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13358 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13362 msm_routing_put_audio_mixer),
13363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13366 msm_routing_put_audio_mixer),
13367 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13370 msm_routing_put_audio_mixer),
13371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13373 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13374 msm_routing_put_audio_mixer),
13375 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13378 msm_routing_put_audio_mixer),
13379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13381 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13382 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013383 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13386 msm_routing_put_audio_mixer),
13387 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13390 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013391 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13394 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013395 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13396 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13397 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13398 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013399};
13400
Asish Bhattacharya34504582017-08-08 12:55:01 +053013401static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013404 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13405 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013406 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13408 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013412 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013416 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013420 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013424 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013428 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013432 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013436 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013438 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013440 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013442 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013444 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013446 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013448 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013450 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013452 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013456 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013458 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013460 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013462 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013464 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013466 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013470 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013474 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013478 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013482 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013484 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013490 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013494 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013498 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013500 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013502 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013504 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013510 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13511 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013514 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013518 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013522 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13523 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13527 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013530 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13531 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013532 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013534 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013538 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13539 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013540 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013542 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13545 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013546 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13548 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13549 msm_routing_put_audio_mixer),
13550 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13553 msm_routing_put_audio_mixer),
13554 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13556 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13557 msm_routing_put_audio_mixer),
13558 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13561 msm_routing_put_audio_mixer),
13562 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13565 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013566 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13569 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013570 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13571 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13572 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13573 msm_routing_get_audio_mixer,
13574 msm_routing_put_audio_mixer),
13575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13578 msm_routing_get_audio_mixer,
13579 msm_routing_put_audio_mixer),
13580 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13582 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13583 msm_routing_get_audio_mixer,
13584 msm_routing_put_audio_mixer),
13585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13588 msm_routing_get_audio_mixer,
13589 msm_routing_put_audio_mixer),
13590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13593 msm_routing_get_audio_mixer,
13594 msm_routing_put_audio_mixer),
13595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13597 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13598 msm_routing_get_audio_mixer,
13599 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013600 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13603 msm_routing_put_audio_mixer),
13604 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13607 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013608 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13611 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013612 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13614 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13615 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013616};
13617
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013619 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013621 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13622 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013623 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13625 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013627 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013629 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013631 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013633 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013635 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013639 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013641 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013643 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013645 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013647 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013649 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013651 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013653 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013655 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013659 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013677 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013681 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13702 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013703 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13706 msm_routing_put_audio_mixer),
13707 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13710 msm_routing_put_audio_mixer),
13711 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13714 msm_routing_put_audio_mixer),
13715 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13717 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13718 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013719 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13721 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13722 msm_routing_put_audio_mixer),
13723 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13726 msm_routing_put_audio_mixer),
13727 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13730 msm_routing_put_audio_mixer),
13731 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13733 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13734 msm_routing_put_audio_mixer),
13735 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13738 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013739 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13742 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13746 msm_routing_put_audio_mixer),
13747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13750 msm_routing_put_audio_mixer),
13751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13754 msm_routing_put_audio_mixer),
13755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13757 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13758 msm_routing_put_audio_mixer),
13759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13762 msm_routing_put_audio_mixer),
13763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13765 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13766 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013767 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13770 msm_routing_put_audio_mixer),
13771 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13774 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013775 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13778 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013779};
13780
Laxminath Kasam38070be2017-08-17 18:21:59 +053013781static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013784 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013786 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13788 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013792 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013796 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013798 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013800 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013808 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013820 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013832 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013836 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013840 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013848 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013862 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013866 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013870 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013878 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013882 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013886 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013888 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13889 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013890 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13892 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13893 msm_routing_put_audio_mixer),
13894 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13897 msm_routing_put_audio_mixer),
13898 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13901 msm_routing_put_audio_mixer),
13902 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13904 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13905 msm_routing_put_audio_mixer),
13906 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13909 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013910 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13913 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013914 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13916 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13917 msm_routing_get_audio_mixer,
13918 msm_routing_put_audio_mixer),
13919 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13921 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13922 msm_routing_get_audio_mixer,
13923 msm_routing_put_audio_mixer),
13924 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13927 msm_routing_get_audio_mixer,
13928 msm_routing_put_audio_mixer),
13929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13931 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13932 msm_routing_get_audio_mixer,
13933 msm_routing_put_audio_mixer),
13934 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13937 msm_routing_get_audio_mixer,
13938 msm_routing_put_audio_mixer),
13939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13941 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13942 msm_routing_get_audio_mixer,
13943 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013944 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13947 msm_routing_put_audio_mixer),
13948 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13950 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13951 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013952 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13954 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13955 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013956 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13958 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13959 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013960};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013961static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13965 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013966 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13968 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013976 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013978 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013980 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013988 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013990 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013994 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013996 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13997 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013998 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13999 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14000 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14001 msm_routing_put_audio_mixer),
14002 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14004 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14005 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014006 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14009 msm_routing_put_audio_mixer),
14010 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14012 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14013 msm_routing_put_audio_mixer),
14014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14017 msm_routing_put_audio_mixer),
14018 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14019 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14020 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14021 msm_routing_put_audio_mixer),
14022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14024 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14025 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014026 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14027 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14028 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14029 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014030 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14031 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14032 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14033 msm_routing_get_audio_mixer,
14034 msm_routing_put_audio_mixer),
14035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14037 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14038 msm_routing_get_audio_mixer,
14039 msm_routing_put_audio_mixer),
14040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14042 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14043 msm_routing_get_audio_mixer,
14044 msm_routing_put_audio_mixer),
14045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14047 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14048 msm_routing_get_audio_mixer,
14049 msm_routing_put_audio_mixer),
14050 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14052 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14053 msm_routing_get_audio_mixer,
14054 msm_routing_put_audio_mixer),
14055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14057 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14058 msm_routing_get_audio_mixer,
14059 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014060 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14063 msm_routing_put_audio_mixer),
14064 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14066 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14067 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014068 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14070 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14071 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072};
14073
14074static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14078 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014079 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14081 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014085 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014089 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14090 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014091 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14093 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14094 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014095 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14097 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014099 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014103 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014105 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014113 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14122 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014123 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14125 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14126 msm_routing_put_audio_mixer),
14127 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14129 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14130 msm_routing_put_audio_mixer),
14131 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14133 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14134 msm_routing_put_audio_mixer),
14135 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14137 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14138 msm_routing_put_audio_mixer),
14139 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14141 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14142 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014143 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14145 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14146 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14149 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14150 msm_routing_get_audio_mixer,
14151 msm_routing_put_audio_mixer),
14152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14154 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14155 msm_routing_get_audio_mixer,
14156 msm_routing_put_audio_mixer),
14157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14159 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14160 msm_routing_get_audio_mixer,
14161 msm_routing_put_audio_mixer),
14162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14164 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14165 msm_routing_get_audio_mixer,
14166 msm_routing_put_audio_mixer),
14167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14169 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14170 msm_routing_get_audio_mixer,
14171 msm_routing_put_audio_mixer),
14172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14174 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14175 msm_routing_get_audio_mixer,
14176 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014177 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14179 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14180 msm_routing_put_audio_mixer),
14181 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14183 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14184 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014185 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14187 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14188 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014189};
14190
14191static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014194 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014196 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14198 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014202 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014204 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014208 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014212 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14213 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014214 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014216 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014218 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014220 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14221 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014224 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14225 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014226 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14227 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014228 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14229 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14230 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14231 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014232 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14233 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14234 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14235 msm_routing_put_audio_mixer),
14236 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14237 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14238 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14239 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014240 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14242 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14243 msm_routing_put_audio_mixer),
14244 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14245 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14246 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14247 msm_routing_put_audio_mixer),
14248 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14249 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14250 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14251 msm_routing_put_audio_mixer),
14252 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14253 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14254 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14255 msm_routing_put_audio_mixer),
14256 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14258 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14259 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014260 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14261 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14262 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14263 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014264 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14265 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14266 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14267 msm_routing_get_audio_mixer,
14268 msm_routing_put_audio_mixer),
14269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14271 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14272 msm_routing_get_audio_mixer,
14273 msm_routing_put_audio_mixer),
14274 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14276 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14277 msm_routing_get_audio_mixer,
14278 msm_routing_put_audio_mixer),
14279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14281 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14282 msm_routing_get_audio_mixer,
14283 msm_routing_put_audio_mixer),
14284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14286 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14287 msm_routing_get_audio_mixer,
14288 msm_routing_put_audio_mixer),
14289 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14291 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14292 msm_routing_get_audio_mixer,
14293 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014294 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14296 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14297 msm_routing_put_audio_mixer),
14298 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14300 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14301 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014302 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14304 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14305 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306};
14307
14308static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014327 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14328 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014329 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14331 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014333 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014335 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014337 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014339 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014343 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014345 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014347 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014351 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014353 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14354 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014355 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014357 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014359 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014363 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014365 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014367 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014369 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014373 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14374 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014379 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014381 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014383 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014385 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14386 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014387 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014393 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014399 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014401 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14402 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014403 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014407 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014411 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14412 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014413 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14415 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14416 msm_routing_put_audio_mixer),
14417 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14419 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14420 msm_routing_put_audio_mixer),
14421 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14423 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14424 msm_routing_put_audio_mixer),
14425 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14427 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14428 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014429 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14431 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14432 msm_routing_put_audio_mixer),
14433 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14435 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14436 msm_routing_put_audio_mixer),
14437 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14439 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14440 msm_routing_put_audio_mixer),
14441 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14442 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14443 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14444 msm_routing_put_audio_mixer),
14445 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14446 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14447 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14448 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014449 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14451 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14452 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014453 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14455 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14456 msm_routing_put_audio_mixer),
14457 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14459 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14460 msm_routing_put_audio_mixer),
14461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14463 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14464 msm_routing_put_audio_mixer),
14465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14467 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14468 msm_routing_put_audio_mixer),
14469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14471 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14472 msm_routing_put_audio_mixer),
14473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14475 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14476 msm_routing_put_audio_mixer),
14477 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14479 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14480 msm_routing_put_audio_mixer),
14481 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14483 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14484 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014485 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14487 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14488 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014489};
14490
14491static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14492 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_AUXPCM_TX,
14494 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14495 msm_routing_put_audio_mixer),
14496 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14498 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14499 msm_routing_put_audio_mixer),
14500 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14502 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14503 msm_routing_put_audio_mixer),
14504 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14506 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14507 msm_routing_put_audio_mixer),
14508 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14510 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14511 msm_routing_put_audio_mixer),
14512 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14514 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14515 msm_routing_put_audio_mixer),
14516 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14518 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14519 msm_routing_put_audio_mixer),
14520 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14522 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14523 msm_routing_put_audio_mixer),
14524 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14526 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14527 msm_routing_put_audio_mixer),
14528 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14530 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14531 msm_routing_put_audio_mixer),
14532 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14534 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14535 msm_routing_put_audio_mixer),
14536 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14538 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14539 msm_routing_put_audio_mixer),
14540 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14542 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14543 msm_routing_put_audio_mixer),
14544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14546 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14547 msm_routing_put_audio_mixer),
14548 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14550 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14551 msm_routing_put_audio_mixer),
14552 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14553 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14554 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14555 msm_routing_put_audio_mixer),
14556 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14558 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14559 msm_routing_put_audio_mixer),
14560 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14562 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14563 msm_routing_put_audio_mixer),
14564 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14566 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14567 msm_routing_put_audio_mixer),
14568 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14570 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14571 msm_routing_put_audio_mixer),
14572 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14574 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14575 msm_routing_put_audio_mixer),
14576 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14578 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14579 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014580 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14582 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14583 msm_routing_put_audio_mixer),
14584 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14586 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14587 msm_routing_put_audio_mixer),
14588 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14590 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14591 msm_routing_put_audio_mixer),
14592 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14594 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14595 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014596 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014597 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14598 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014599 msm_routing_put_audio_mixer),
14600 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014601 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14602 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014603 msm_routing_put_audio_mixer),
14604 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014605 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14606 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014607 msm_routing_put_audio_mixer),
14608 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014609 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14610 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014611 msm_routing_put_audio_mixer),
14612 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014613 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14614 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014615 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014616 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14618 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14619 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014620 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014621 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14622 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14623 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14626 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14627 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014628 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014629 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14630 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14631 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14634 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14635 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14638 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14639 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14642 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14643 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014644 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14645 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014646 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014647 msm_routing_put_audio_mixer),
14648 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014650 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014651 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014652 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14653 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14654 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14655 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656};
14657
Derek Chenb097d922019-07-31 17:28:02 -070014658static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14659 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14660 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14661 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14662 msm_routing_put_audio_mixer),
14663 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14665 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14666 msm_routing_put_audio_mixer),
14667 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14668 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14669 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14670 msm_routing_put_audio_mixer),
14671 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14672 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14673 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14674 msm_routing_put_audio_mixer),
14675 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14676 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14677 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14678 msm_routing_put_audio_mixer),
14679 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14680 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14681 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14682 msm_routing_put_audio_mixer),
14683 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14685 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14686 msm_routing_put_audio_mixer),
14687 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14689 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14690 msm_routing_put_audio_mixer),
14691 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14693 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14694 msm_routing_put_audio_mixer),
14695 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14696 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14697 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14698 msm_routing_put_audio_mixer),
14699 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14700 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14701 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14702 msm_routing_put_audio_mixer),
14703 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14705 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14706 msm_routing_put_audio_mixer),
14707 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14709 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14710 msm_routing_put_audio_mixer),
14711 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14713 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14714 msm_routing_put_audio_mixer),
14715 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14716 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14717 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14718 msm_routing_put_audio_mixer),
14719 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14721 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14722 msm_routing_put_audio_mixer),
14723 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14724 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14725 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14726 msm_routing_put_audio_mixer),
14727 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14729 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14730 msm_routing_put_audio_mixer),
14731 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14733 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14734 msm_routing_put_audio_mixer),
14735 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14736 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14737 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14738 msm_routing_put_audio_mixer),
14739};
14740
Surendar Karkac1cde372018-08-14 18:56:24 +053014741static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14742 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14744 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14745 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014746 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14748 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14749 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014750 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14751 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14752 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14753 msm_routing_put_audio_mixer),
14754 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14756 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14757 msm_routing_put_audio_mixer),
14758 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14759 MSM_BACKEND_DAI_PRI_MI2S_TX,
14760 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14761 msm_routing_put_audio_mixer),
14762 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14764 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14765 msm_routing_put_audio_mixer),
14766 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14768 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14769 msm_routing_put_audio_mixer),
14770 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14771 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14772 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14773 msm_routing_put_audio_mixer),
14774 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14776 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14777 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014778 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14780 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14781 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014782 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14783 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14784 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14785 msm_routing_put_audio_mixer),
14786 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14788 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14789 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014790 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14792 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14793 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014794 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14796 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14797 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014798};
14799
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014800static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014803 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14804 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014805 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14807 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014811 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014813 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014815 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014819 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014821 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014823 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014825 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014827 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014831 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014833 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014835 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14836 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014837 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14839 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14840 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014841 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14843 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14844 msm_routing_put_audio_mixer),
14845 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014847 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080014848 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014849 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14851 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14852 msm_routing_put_audio_mixer),
14853 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14855 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14856 msm_routing_put_audio_mixer),
14857 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14859 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14860 msm_routing_put_audio_mixer),
14861 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14862 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14863 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14864 msm_routing_put_audio_mixer),
14865 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14867 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14868 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014869 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14871 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14872 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014873 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14874 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14875 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14876 msm_routing_get_audio_mixer,
14877 msm_routing_put_audio_mixer),
14878 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14879 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14880 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14881 msm_routing_get_audio_mixer,
14882 msm_routing_put_audio_mixer),
14883 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14885 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14886 msm_routing_get_audio_mixer,
14887 msm_routing_put_audio_mixer),
14888 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14890 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14891 msm_routing_get_audio_mixer,
14892 msm_routing_put_audio_mixer),
14893 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14895 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14896 msm_routing_get_audio_mixer,
14897 msm_routing_put_audio_mixer),
14898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14900 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14901 msm_routing_get_audio_mixer,
14902 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014903 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14905 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14906 msm_routing_put_audio_mixer),
14907 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14909 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14910 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014911 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14913 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14914 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014915};
14916
14917static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014920 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14921 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014922 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14924 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014926 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014928 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014930 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014932 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14935 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014936 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014938 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014940 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014944 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014946 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14947 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014948 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014950 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14951 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014952 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14953 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014954 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14955 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14956 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14957 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014958 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14960 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14961 msm_routing_put_audio_mixer),
14962 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14964 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14965 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014966 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14967 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14968 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14969 msm_routing_put_audio_mixer),
14970 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14971 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14972 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14973 msm_routing_put_audio_mixer),
14974 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14976 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14977 msm_routing_put_audio_mixer),
14978 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14980 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14981 msm_routing_put_audio_mixer),
14982 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14984 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14985 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014986 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14987 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14988 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14989 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014990 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14992 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14993 msm_routing_get_audio_mixer,
14994 msm_routing_put_audio_mixer),
14995 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14997 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14998 msm_routing_get_audio_mixer,
14999 msm_routing_put_audio_mixer),
15000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15002 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15003 msm_routing_get_audio_mixer,
15004 msm_routing_put_audio_mixer),
15005 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15007 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15008 msm_routing_get_audio_mixer,
15009 msm_routing_put_audio_mixer),
15010 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15012 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15013 msm_routing_get_audio_mixer,
15014 msm_routing_put_audio_mixer),
15015 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15017 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15018 msm_routing_get_audio_mixer,
15019 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015020 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15022 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15023 msm_routing_put_audio_mixer),
15024 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15027 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015028 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15030 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15031 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015032};
15033
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015034static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15035 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15037 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15038 msm_routing_put_audio_mixer),
15039 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15041 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15042 msm_routing_put_audio_mixer),
15043 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_PRI_MI2S_TX,
15045 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15046 msm_routing_put_audio_mixer),
15047 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_INT3_MI2S_TX,
15049 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15050 msm_routing_put_audio_mixer),
15051 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_INT_FM_TX,
15053 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15054 msm_routing_put_audio_mixer),
15055 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15057 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15058 msm_routing_put_audio_mixer),
15059 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_AFE_PCM_TX,
15061 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15062 msm_routing_put_audio_mixer),
15063 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15065 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15066 msm_routing_put_audio_mixer),
15067 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15069 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15070 msm_routing_put_audio_mixer),
15071 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15073 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15074 msm_routing_put_audio_mixer),
15075 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15077 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15078 msm_routing_put_audio_mixer),
15079 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15081 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15082 msm_routing_put_audio_mixer),
15083 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15085 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15086 msm_routing_put_audio_mixer),
15087 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15089 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15090 msm_routing_put_audio_mixer),
15091 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15093 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15094 msm_routing_put_audio_mixer),
15095 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15097 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15098 msm_routing_put_audio_mixer),
15099 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15101 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15102 msm_routing_put_audio_mixer),
15103 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15105 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15106 msm_routing_get_audio_mixer,
15107 msm_routing_put_audio_mixer),
15108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15110 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15111 msm_routing_get_audio_mixer,
15112 msm_routing_put_audio_mixer),
15113 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15115 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15116 msm_routing_get_audio_mixer,
15117 msm_routing_put_audio_mixer),
15118 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15120 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15121 msm_routing_get_audio_mixer,
15122 msm_routing_put_audio_mixer),
15123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15125 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15126 msm_routing_get_audio_mixer,
15127 msm_routing_put_audio_mixer),
15128 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15129 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15130 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15131 msm_routing_get_audio_mixer,
15132 msm_routing_put_audio_mixer),
15133 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15135 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15136 msm_routing_put_audio_mixer),
15137 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15139 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15140 msm_routing_put_audio_mixer),
15141 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15142 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15143 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15144 msm_routing_put_audio_mixer),
15145};
15146
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015147static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015152 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015154 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015156 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015160 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15161 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015162 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15167 msm_routing_put_voice_mixer),
15168};
15169
15170static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15174 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015175 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015177 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15178 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15182 msm_routing_put_voice_mixer),
15183};
15184
15185static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15189 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015190 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15192 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15193 msm_routing_put_voice_mixer),
15194 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15196 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15201 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015202 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015204 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015208 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15213 msm_routing_put_voice_mixer),
15214};
15215
15216static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015217 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015221 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15224 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15236 msm_routing_put_voice_mixer),
15237};
15238
15239static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15241MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15243 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15245MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15247 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15249MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15253MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15255 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15257MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15259 msm_routing_put_voice_mixer),
15260};
15261
15262static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015265 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15266 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15270 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015277 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15278 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015279 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015281 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15282 msm_routing_put_voice_mixer),
15283};
15284
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015285static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15287MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015288 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15289 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015290 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15291MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015292 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15293 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15295MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015296 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15297 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015298 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15299MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015300 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15301 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15303MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015304 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15305 msm_routing_put_voice_mixer),
15306};
15307
Karthikeyan Mani57550082018-05-03 18:43:58 -070015308static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15309 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15311 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15312 msm_routing_put_voice_mixer),
15313 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15315 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15316 msm_routing_put_voice_mixer),
15317 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15319 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15320 msm_routing_put_voice_mixer),
15321 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15323 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15324 msm_routing_put_voice_mixer),
15325 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15327 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15328 msm_routing_put_voice_mixer),
15329};
15330
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015331static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015338 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15339 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_INT_BT_SCO_RX,
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("VoiceMMode1", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15347 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15351 msm_routing_put_voice_mixer),
15352};
15353
15354static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15358 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015359 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_MI2S_RX,
15361 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15362 msm_routing_put_voice_mixer),
15363 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_MI2S_RX,
15365 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15366 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15370 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015371 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015373 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15374 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15378 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15382 msm_routing_put_voice_mixer),
15383};
15384
15385static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015387 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015388 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15389 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015390 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_PRI_MI2S_RX,
15392 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15393 msm_routing_put_voice_mixer),
15394 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_PRI_MI2S_RX,
15396 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015398 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015399 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015400 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15401 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015402 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015403 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015404 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15405 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015406 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015407 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15409 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015411 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15413 msm_routing_put_voice_mixer),
15414};
15415
15416static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15418MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015419 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15420 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15422MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15426MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15428 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15430MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015431 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15434MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15436 msm_routing_put_voice_mixer),
15437};
15438
15439static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15443 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15445 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015446 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15447 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15451 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015454 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15459 msm_routing_put_voice_mixer),
15460};
15461
15462static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15466 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015467 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15469 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15470 msm_routing_put_voice_mixer),
15471 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15473 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015479 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015481 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15486 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015489 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15490 msm_routing_put_voice_mixer),
15491};
15492
15493static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015496 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15497 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015498 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15500 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15501 msm_routing_put_voice_mixer),
15502 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15504 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015506 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015508 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15509 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015510 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015512 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15513 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015516 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15517 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15521 msm_routing_put_voice_mixer),
15522};
15523
15524static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015527 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15528 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015529 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15531 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15532 msm_routing_put_voice_stub_mixer),
15533 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15535 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15536 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015537 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015539 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15540 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015541 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15542 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015543 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15544 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015545 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15546 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015547 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15548 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15552 msm_routing_put_voice_mixer),
15553};
15554
Karthikeyan Manic3700752019-03-11 18:33:53 -070015555static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15556 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15558 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15559 msm_routing_put_voice_mixer),
15560 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15561 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15562 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15563 msm_routing_put_voice_mixer),
15564 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15566 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15567 msm_routing_put_voice_mixer),
15568 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15570 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15571 msm_routing_put_voice_mixer),
15572 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15573 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15574 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15575 msm_routing_put_voice_mixer),
15576};
15577
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15582 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15586 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015587 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015589 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15590 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15598 msm_routing_put_voice_mixer),
15599};
15600
15601static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015604 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015606 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15609 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015612 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15613 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015616 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15617 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015618 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15619 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015620 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15621 msm_routing_put_voice_mixer),
15622};
15623
15624static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15626MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015627 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015629 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15630MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015633 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15634MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015635 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15636 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15638MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15642MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15644 msm_routing_put_voice_mixer),
15645};
15646
15647static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15649MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015650 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15651 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15653MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15657MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015660 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15661MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015662 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015664 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15665MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015666 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15667 msm_routing_put_voice_mixer),
15668};
15669
15670static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15672MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15676MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015677 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15678 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15680MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15682 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015683 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15684MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015685 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15688MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015689 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15690 msm_routing_put_voice_mixer),
15691};
15692
Rohit Kumara5077932017-09-10 22:05:05 +053015693static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15695MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015696 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15699MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015700 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015702 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15703MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015704 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15707MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015708 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015710 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15711MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015712 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15713 msm_routing_put_voice_mixer),
15714};
15715
Karthikeyan Manic3700752019-03-11 18:33:53 -070015716static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15717 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15718 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15719 msm_routing_put_voice_mixer),
15720 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15721 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15722 msm_routing_put_voice_mixer),
15723 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15724 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15725 msm_routing_put_voice_mixer),
15726 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15728 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
15730 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15732 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15733 msm_routing_put_voice_mixer),
15734};
15735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015737 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15738 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015739 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15740 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15742 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015743 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015747 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15748 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15752 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15754 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015755 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15756 msm_routing_put_voice_mixer),
15757};
15758
15759static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15761MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015762 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15763 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15765MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15767 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015768 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15769MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015770 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15771 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015772 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15773MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015774 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15775 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015776 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15777MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015778 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15779 msm_routing_put_voice_mixer),
15780};
15781
15782static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015785 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15786 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15790 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15798 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15802 msm_routing_put_voice_mixer),
15803};
15804
15805static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015808 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15809 msm_routing_put_voice_mixer),
15810};
15811
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015812static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15813 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15815 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15816 msm_routing_put_voice_mixer),
15817 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15819 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15820 msm_routing_put_voice_mixer),
15821 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15823 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15824 msm_routing_put_voice_mixer),
15825 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15827 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15828 msm_routing_put_voice_mixer),
15829 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15831 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15832 msm_routing_put_voice_mixer),
15833};
15834
15835static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15836 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15838 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15839 msm_routing_put_voice_mixer),
15840 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15842 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15843 msm_routing_put_voice_mixer),
15844 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15846 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15847 msm_routing_put_voice_mixer),
15848 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15850 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15851 msm_routing_put_voice_mixer),
15852 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15854 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15855 msm_routing_put_voice_mixer),
15856};
15857
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015858static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15859 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15861 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15862 msm_routing_put_voice_mixer),
15863 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15865 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15866 msm_routing_put_voice_mixer),
15867 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15869 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15870 msm_routing_put_voice_mixer),
15871 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15873 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15874 msm_routing_put_voice_mixer),
15875 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15877 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15878 msm_routing_put_voice_mixer),
15879};
15880
15881static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15882 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15884 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15885 msm_routing_put_voice_mixer),
15886 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15888 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15889 msm_routing_put_voice_mixer),
15890 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15892 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15893 msm_routing_put_voice_mixer),
15894 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15896 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15897 msm_routing_put_voice_mixer),
15898 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15900 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15901 msm_routing_put_voice_mixer),
15902};
15903
15904static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15905 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15907 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15908 msm_routing_put_voice_mixer),
15909 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15911 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15912 msm_routing_put_voice_mixer),
15913 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15915 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15916 msm_routing_put_voice_mixer),
15917 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15919 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15920 msm_routing_put_voice_mixer),
15921 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15923 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15924 msm_routing_put_voice_mixer),
15925};
15926
15927static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15928 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15930 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15931 msm_routing_put_voice_mixer),
15932 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15934 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15935 msm_routing_put_voice_mixer),
15936 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15938 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15939 msm_routing_put_voice_mixer),
15940 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15942 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15943 msm_routing_put_voice_mixer),
15944 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15945 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15946 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15947 msm_routing_put_voice_mixer),
15948};
15949
15950static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15951 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15953 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15954 msm_routing_put_voice_mixer),
15955 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15957 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15958 msm_routing_put_voice_mixer),
15959 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15961 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15962 msm_routing_put_voice_mixer),
15963 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15965 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15966 msm_routing_put_voice_mixer),
15967 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15969 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15970 msm_routing_put_voice_mixer),
15971};
15972
15973static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
15974 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15976 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15977 msm_routing_put_voice_mixer),
15978 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15980 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15981 msm_routing_put_voice_mixer),
15982 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15984 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15985 msm_routing_put_voice_mixer),
15986 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15988 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15989 msm_routing_put_voice_mixer),
15990 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15992 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15993 msm_routing_put_voice_mixer),
15994};
15995
15996static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
15997 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15999 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16000 msm_routing_put_voice_mixer),
16001 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16003 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16004 msm_routing_put_voice_mixer),
16005 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16007 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16008 msm_routing_put_voice_mixer),
16009 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16011 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16012 msm_routing_put_voice_mixer),
16013 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16015 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16016 msm_routing_put_voice_mixer),
16017};
16018
16019static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16020 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16022 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16023 msm_routing_put_voice_mixer),
16024 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16026 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16027 msm_routing_put_voice_mixer),
16028 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16031 msm_routing_put_voice_mixer),
16032 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16034 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16035 msm_routing_put_voice_mixer),
16036 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16038 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16039 msm_routing_put_voice_mixer),
16040};
16041
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016042static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16043 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16045 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16046 msm_routing_put_voice_mixer),
16047 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16048 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16049 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16050 msm_routing_put_voice_stub_mixer),
16051 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16053 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16054 msm_routing_put_voice_stub_mixer),
16055 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16056 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16057 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16058 msm_routing_put_voice_mixer),
16059 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16061 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16062 msm_routing_put_voice_mixer),
16063 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16065 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16066 msm_routing_put_voice_mixer),
16067 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16068 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16069 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16070 msm_routing_put_voice_mixer),
16071 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16073 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16074 msm_routing_put_voice_mixer),
16075};
16076
16077static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16078 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16080 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16081 msm_routing_put_voice_mixer),
16082 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16083 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16084 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16085 msm_routing_put_voice_stub_mixer),
16086 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16088 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16089 msm_routing_put_voice_stub_mixer),
16090 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16091 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16092 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16093 msm_routing_put_voice_mixer),
16094 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16096 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16097 msm_routing_put_voice_mixer),
16098 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16100 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16101 msm_routing_put_voice_mixer),
16102 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16104 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16105 msm_routing_put_voice_mixer),
16106 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16108 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16109 msm_routing_put_voice_mixer),
16110};
16111
16112static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16113 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16115 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16116 msm_routing_put_voice_mixer),
16117 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16118 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16119 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16120 msm_routing_put_voice_stub_mixer),
16121 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16123 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16124 msm_routing_put_voice_stub_mixer),
16125 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16126 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16127 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16128 msm_routing_put_voice_mixer),
16129 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16131 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16132 msm_routing_put_voice_mixer),
16133 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16135 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16136 msm_routing_put_voice_mixer),
16137 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16139 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16140 msm_routing_put_voice_mixer),
16141 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16143 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16144 msm_routing_put_voice_mixer),
16145};
16146
16147static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16148 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16150 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16151 msm_routing_put_voice_mixer),
16152 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16154 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16155 msm_routing_put_voice_stub_mixer),
16156 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16158 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16159 msm_routing_put_voice_stub_mixer),
16160 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16162 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16163 msm_routing_put_voice_mixer),
16164 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16166 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16167 msm_routing_put_voice_mixer),
16168 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16169 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16170 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16171 msm_routing_put_voice_mixer),
16172 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16174 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16175 msm_routing_put_voice_mixer),
16176 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16178 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16179 msm_routing_put_voice_mixer),
16180};
16181
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016182static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016183 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016185 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16186 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016189 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16190 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016191};
16192
16193static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016194 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016196 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016198 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16199 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016200 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16201 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202};
16203
16204static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016205 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16206 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016207 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16208 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016209 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016211 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16212 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213};
16214
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016215static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016220 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16221 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016222 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016224 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16226 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16229 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016231 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16232 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016233 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016234 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16235 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016236 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16238 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16241 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16244 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016246 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16247 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016248 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16249 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16250 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16253 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016254 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16256 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16259 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016260 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016261 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16262 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016263 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016264 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16265 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016266 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016267 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16268 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016273 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016274 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016275 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16278 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16281 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016282 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16284 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16287 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16290 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16293 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16294 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16296 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16299 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16300 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16302 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016303 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16304 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16305 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16306 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16308 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016309 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016310 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16311 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016312};
16313
16314static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016315 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016317 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16318 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016321 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16322 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016323 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016324 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16325 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016326 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016327 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16328 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016330 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16331 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016332 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016333 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16334 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016336 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16337 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016338 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016339 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16340 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016341 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016342 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16343 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016344 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016345 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16346 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016347 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16349 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016350 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016351 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16352 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016353 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16355 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016356 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016357 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16358 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016360 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16361 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016362 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016363 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16364 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016365 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016366 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16367 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016368 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016369 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16370 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016371 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16373 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16374 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16375 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16376 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016377 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16379 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016380 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16381 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16382 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16385 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16386 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16387 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16388 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16391 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16392 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16394 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16395 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16396 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16397 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016398 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16400 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16401 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16402 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16403 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016404 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16405 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016406 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016407};
16408
16409static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016410 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016412 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16413 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016414 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016416 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16417 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016418 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016420 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16421 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016424 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16425 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016426 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16427 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016428 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16429 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016430 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16431 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016432 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16433 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016434 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16435 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016436 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16437 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016438 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016440 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16441 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016444 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16445 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016448 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16449 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016450 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16452 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16453 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016454 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016456 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16457 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016458 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16460 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16461 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016464 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16465 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016468 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16469 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016472 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16473 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016474 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16475 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016476 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16477 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016478 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016480 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16481 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016482 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16484 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16485 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16487 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016488 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16490 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016491 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16493 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16496 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16497 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16498 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16499 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16500 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16502 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16503 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16504 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16505 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16506 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16508 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016509 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16511 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512};
16513
16514static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016515 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16516 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016517 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16518 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016519 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16520 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016521 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16522 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016523 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16524 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016525 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16526 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016527 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16528 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016529 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16530 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016531 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016533 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16534 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016535 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016537 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16538 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016539 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16540 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016541 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16542 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016543 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016545 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16546 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016547 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16550 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016551 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16552 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16554 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016557 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16558 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016559 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016561 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16562 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016563 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016565 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16566 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016567 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16568 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016569 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16570 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016571 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16573 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16574 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016575 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016577 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16578 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016579 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016581 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16582 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16586 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016587 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016589 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16590 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016591 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016593 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16594 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016595 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16596 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16597 1, 0, msm_routing_get_voice_stub_mixer,
16598 msm_routing_put_voice_stub_mixer),
16599 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16601 1, 0, msm_routing_get_voice_stub_mixer,
16602 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016603 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16605 1, 0, msm_routing_get_voice_stub_mixer,
16606 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016607 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16608 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16609 1, 0, msm_routing_get_voice_stub_mixer,
16610 msm_routing_put_voice_stub_mixer),
16611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16613 1, 0, msm_routing_get_voice_stub_mixer,
16614 msm_routing_put_voice_stub_mixer),
16615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16617 1, 0, msm_routing_get_voice_stub_mixer,
16618 msm_routing_put_voice_stub_mixer),
16619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16621 1, 0, msm_routing_get_voice_stub_mixer,
16622 msm_routing_put_voice_stub_mixer),
16623 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16625 1, 0, msm_routing_get_voice_stub_mixer,
16626 msm_routing_put_voice_stub_mixer),
16627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16629 1, 0, msm_routing_get_voice_stub_mixer,
16630 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016631};
16632
16633static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016634 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016636 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16637 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016638 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016640 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16641 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016642 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016644 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16645 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016646 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016648 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16649 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016650 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16651 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016652 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16653 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016654 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16655 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016656 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16657 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016658 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16661 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016662 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016664 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16665 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016666 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16668 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16669 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016670 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16671 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016672 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16673 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016674 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16675 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016676 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16677 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016680 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16681 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016684 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16685 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016688 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16689 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016690 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16692 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16693 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016694 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16695 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016696 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16697 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016698 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16699 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016700 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16701 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016702 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16703 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16704 1, 0, msm_routing_get_voice_stub_mixer,
16705 msm_routing_put_voice_stub_mixer),
16706 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16708 1, 0, msm_routing_get_voice_stub_mixer,
16709 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016710 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16712 1, 0, msm_routing_get_voice_stub_mixer,
16713 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016714 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16716 1, 0, msm_routing_get_voice_stub_mixer,
16717 msm_routing_put_voice_stub_mixer),
16718 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16719 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16720 1, 0, msm_routing_get_voice_stub_mixer,
16721 msm_routing_put_voice_stub_mixer),
16722 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16723 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16724 1, 0, msm_routing_get_voice_stub_mixer,
16725 msm_routing_put_voice_stub_mixer),
16726 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16728 1, 0, msm_routing_get_voice_stub_mixer,
16729 msm_routing_put_voice_stub_mixer),
16730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16732 1, 0, msm_routing_get_voice_stub_mixer,
16733 msm_routing_put_voice_stub_mixer),
16734 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16736 1, 0, msm_routing_get_voice_stub_mixer,
16737 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016738};
16739
16740static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016741 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016743 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16744 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016745 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016747 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16748 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016749 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016751 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16752 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016753 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016755 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16756 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016757 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16758 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16760 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016761 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16762 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016763 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16764 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016765 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016767 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16768 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016769 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16770 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016771 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16772 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016773 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16775 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16776 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16780 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16784 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016787 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16788 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016789 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16790 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016791 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16792 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16796 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016797 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016799 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16800 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016801 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16802 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016803 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16804 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016805 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16807 1, 0, msm_routing_get_voice_stub_mixer,
16808 msm_routing_put_voice_stub_mixer),
16809 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16810 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16811 1, 0, msm_routing_get_voice_stub_mixer,
16812 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016813 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16815 1, 0, msm_routing_get_voice_stub_mixer,
16816 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16819 1, 0, msm_routing_get_voice_stub_mixer,
16820 msm_routing_put_voice_stub_mixer),
16821 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16822 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16823 1, 0, msm_routing_get_voice_stub_mixer,
16824 msm_routing_put_voice_stub_mixer),
16825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16827 1, 0, msm_routing_get_voice_stub_mixer,
16828 msm_routing_put_voice_stub_mixer),
16829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16831 1, 0, msm_routing_get_voice_stub_mixer,
16832 msm_routing_put_voice_stub_mixer),
16833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16835 1, 0, msm_routing_get_voice_stub_mixer,
16836 msm_routing_put_voice_stub_mixer),
16837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16839 1, 0, msm_routing_get_voice_stub_mixer,
16840 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016841};
16842
16843static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016844 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16845 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016846 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16847 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016848 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016850 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16851 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016852 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16854 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016855 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016856 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016858 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16859 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016860 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16861 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016862 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16863 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016864 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16865 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016866 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16867 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016868 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16869 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016870 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016872 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16873 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016874 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016876 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016878 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16879 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016880 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16882 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016884 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16885 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016886 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016888 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016892 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016894 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16895 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016896 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016900 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016902 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16903 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016904 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16905 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016906 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16907 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016908 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16909 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016910 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16911 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016912 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16914 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16915 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16917 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16920 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16923 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16924 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16925 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16926 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16927 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16928 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16929 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16930 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16932 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16933 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16935 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16938 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939};
16940
16941static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016942 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016946 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016948 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016950 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016952 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016954 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16955 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016956 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016958 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016960 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16961 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016962 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16963 MSM_BACKEND_DAI_INT0_MI2S_RX,
16964 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016966 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016968 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016970 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16971 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016972 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016974 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16975 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016976 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016978 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16979 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016980 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016982 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16983 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016984 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16985 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016986 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16987 MSM_BACKEND_DAI_INT0_MI2S_RX,
16988 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16989 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016990};
16991
16992static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016997 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016999 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017001 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017003 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017005 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017007 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017009 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017011 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17012 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017013 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_INT4_MI2S_RX,
17015 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017017 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017019 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017021 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017025 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017027 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017035 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17036 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017037 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_INT4_MI2S_RX,
17039 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17040 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017041};
17042
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017043static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17044 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17046 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17047 msm_routing_put_port_mixer),
17048 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17051 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017052 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17054 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17055 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017056 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17059 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017060};
17061
17062static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17063 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17066 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017067 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17069 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17070 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017071 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017073 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17074 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017075 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17077 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17078 msm_routing_put_port_mixer),
17079
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017080};
17081
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017082static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017083 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17084 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017085 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017087 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17088 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017089 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017091 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17092 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017095 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17096 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017097 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017099 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17100 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017103 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17104 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017105 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017107 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17108 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017109 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017111 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17112 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017113 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017115 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017119 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017121 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17122 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017123 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17125 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017127 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17128 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017129 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017131 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17132 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017133 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017135 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017137 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017139 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17140 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017141 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017143 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017145 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017147 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17148 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017149 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17150 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017151 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17153 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017157 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017159 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17160 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017161 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017163 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17164 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017165 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017167 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17168 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017169 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017171 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17172 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017173 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017175 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17176 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017177 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17178 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017179 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17180 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17181 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17182 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017183 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17184 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17185 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017186 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017187};
17188
17189static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017190 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017192 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017194 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17195 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017196 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017198 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017200 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017202 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17203 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017204 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017206 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17207 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017208 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017210 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17211 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017212 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17213 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017214 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17215 MSM_BACKEND_DAI_AUXPCM_RX,
17216 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17217 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017218};
17219
17220static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017221 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17222 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017223 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017225 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17226 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017227 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017229 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17230 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017231 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017233 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017235 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17236 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237};
17238
17239static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017240 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017244 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17245 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017246 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017248 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017250 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17251 msm_routing_put_port_mixer),
17252};
17253
17254static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017255 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017257 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017259 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017261 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, 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_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17266 msm_routing_put_port_mixer),
17267};
17268
Rohit Kumara5077932017-09-10 22:05:05 +053017269static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017270 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17271 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017272 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017274 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17275 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017276 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017278 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17279 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017280 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17281 msm_routing_put_port_mixer),
17282};
17283
Karthikeyan Manic3700752019-03-11 18:33:53 -070017284static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17285 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17286 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17287 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17288 msm_routing_put_port_mixer),
17289 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17290 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17291 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17292 msm_routing_put_port_mixer),
17293 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17294 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17295 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17296 msm_routing_put_port_mixer),
17297};
17298
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017299static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017300 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17301 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017302 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017304 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17305 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017306 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017308 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17309 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017310 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017312 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017314 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017316 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17317 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017318 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017320 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17321 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017322 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17323 msm_routing_put_port_mixer),
17324};
17325
17326static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017327 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17328 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017331 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17332 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017333 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017335 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17336 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017337 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017339 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17340 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017341 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017343 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17344 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017345 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17346 msm_routing_put_port_mixer),
17347};
17348
17349static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017350 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017352 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017354 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017356 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017358 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17359 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017360 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017362 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017364 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017366 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017368 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017370 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17371 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017372 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017374 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17375 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017376 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017378 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17379 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017380 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017382 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17383 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017384 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017386 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17387 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017388 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017390 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17391 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017392 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017394 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17395 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017396 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17397 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017398 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17399 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17400 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17401 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402};
17403
17404static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017405 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17406 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017409 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17410 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017411 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17412 msm_routing_put_port_mixer),
17413};
17414
17415static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017416 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017420 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017422 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
17424};
17425
17426
17427static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017428 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17431 msm_routing_put_port_mixer),
17432};
17433
17434static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017435 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17436 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017437 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17438 msm_routing_put_port_mixer),
17439};
17440
Karthikeyan Mani57550082018-05-03 18:43:58 -070017441static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17442 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17443 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17444 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17445 msm_routing_put_port_mixer),
17446};
17447
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017448static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017449 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17450 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017451 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17452 msm_routing_put_port_mixer),
17453};
17454
17455static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017456 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17457 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017458 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017460 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17461 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017462 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17463 msm_routing_put_port_mixer),
17464};
17465
17466static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017467 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017469 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017471 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017473 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017475 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017477 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017479 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017483 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17484 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017487 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17488 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017491 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17492 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017493 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17494 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017495 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_PRI_MI2S_RX,
17497 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017499 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17500 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017501 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017503 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17504 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017505 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017507 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17508 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017509 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17510 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017511};
17512
17513static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017514 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017516 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
17518};
17519
17520static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017523 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017525 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017527 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017529 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017531 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017533 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017535 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017537 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017539 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017541 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17542 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017543 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017545 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17546 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017547 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017549 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017551 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17552 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017553 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17555 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017557 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017559 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17560 msm_routing_put_port_mixer),
17561};
17562
Rohit Kumara5077932017-09-10 22:05:05 +053017563static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017564 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17565 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017566 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017568 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017570 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017572 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017574 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017576 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017578 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017580 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017582 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17583 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017584 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17585 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17586 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017588 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17589 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017590 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017592 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17593 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017594 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17595 msm_routing_put_port_mixer),
17596};
17597
Karthikeyan Manic3700752019-03-11 18:33:53 -070017598static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17599 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17600 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17601 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17602 msm_routing_put_port_mixer),
17603 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17604 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17605 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17606 msm_routing_put_port_mixer),
17607 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17608 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17609 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17610 msm_routing_put_port_mixer),
17611 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17612 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17613 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17614 msm_routing_put_port_mixer),
17615 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17616 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17617 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17618 msm_routing_put_port_mixer),
17619 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17620 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17621 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17622 msm_routing_put_port_mixer),
17623 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17624 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17625 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17626 msm_routing_put_port_mixer),
17627 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17628 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17629 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17630 msm_routing_put_port_mixer),
17631};
17632
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017633static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017634 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17635 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017636 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17637 msm_routing_get_port_mixer,
17638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017639 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17640 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017641 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17642 msm_routing_get_port_mixer,
17643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017644 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17645 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17647 msm_routing_get_port_mixer,
17648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017649 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17650 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017651 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17652 msm_routing_get_port_mixer,
17653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017654 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17655 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017656 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17657 msm_routing_get_port_mixer,
17658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017659 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17660 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017661 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17662 msm_routing_get_port_mixer,
17663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017664 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17665 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017666 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17667 msm_routing_get_port_mixer,
17668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017669 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17670 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017671 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17672 msm_routing_get_port_mixer,
17673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017674 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17675 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017676 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17677 msm_routing_get_port_mixer,
17678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017679 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17680 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17682 msm_routing_get_port_mixer,
17683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017684 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17685 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017686 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17687 msm_routing_get_port_mixer,
17688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017689 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17690 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017691 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17692 msm_routing_get_port_mixer,
17693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017694 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17695 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017696 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17697 msm_routing_get_port_mixer,
17698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017699 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17700 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017701 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17702 msm_routing_get_port_mixer,
17703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017704 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17705 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017706 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17707 msm_routing_get_port_mixer,
17708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017709 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17710 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017711 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17712 msm_routing_get_port_mixer,
17713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017714 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17715 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017716 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17717 msm_routing_get_port_mixer,
17718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017719 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17720 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017721 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17722 msm_routing_get_port_mixer,
17723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017724 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17725 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017726 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17727 msm_routing_get_port_mixer,
17728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017729 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17730 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017731 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17732 msm_routing_get_port_mixer,
17733 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017734 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17735 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17736 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17737 msm_routing_get_port_mixer,
17738 msm_routing_put_port_mixer),
17739 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17740 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17741 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17742 msm_routing_get_port_mixer,
17743 msm_routing_put_port_mixer),
17744 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17745 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17746 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17747 msm_routing_get_port_mixer,
17748 msm_routing_put_port_mixer),
17749 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17750 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17751 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17752 msm_routing_get_port_mixer,
17753 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017754};
17755
17756static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017757 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17758 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017759 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17760 msm_routing_get_port_mixer,
17761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017762 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17763 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017764 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17765 msm_routing_get_port_mixer,
17766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017767 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17768 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17770 msm_routing_get_port_mixer,
17771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017772 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17773 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017774 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17775 msm_routing_get_port_mixer,
17776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017777 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17778 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017779 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17780 msm_routing_get_port_mixer,
17781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017782 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17783 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017784 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17785 msm_routing_get_port_mixer,
17786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017787 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17788 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017789 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17790 msm_routing_get_port_mixer,
17791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017792 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17793 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017794 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17795 msm_routing_get_port_mixer,
17796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017797 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17798 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17800 msm_routing_get_port_mixer,
17801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017802 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17803 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017804 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17805 msm_routing_get_port_mixer,
17806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017807 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17808 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017809 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17810 msm_routing_get_port_mixer,
17811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017812 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17813 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017814 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17815 msm_routing_get_port_mixer,
17816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017817 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17818 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017819 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17820 msm_routing_get_port_mixer,
17821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017822 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17823 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017824 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17825 msm_routing_get_port_mixer,
17826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017827 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17828 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017829 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17830 msm_routing_get_port_mixer,
17831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017832 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17833 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17835 msm_routing_get_port_mixer,
17836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017837 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17838 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017839 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17840 msm_routing_get_port_mixer,
17841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017842 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17843 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017844 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17845 msm_routing_get_port_mixer,
17846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017847 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17848 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017849 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17850 msm_routing_get_port_mixer,
17851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017852 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17853 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017854 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17855 msm_routing_get_port_mixer,
17856 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017857 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17858 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17859 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17860 msm_routing_get_port_mixer,
17861 msm_routing_put_port_mixer),
17862 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17863 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17864 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17865 msm_routing_get_port_mixer,
17866 msm_routing_put_port_mixer),
17867 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17868 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17869 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17870 msm_routing_get_port_mixer,
17871 msm_routing_put_port_mixer),
17872 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17873 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17874 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17875 msm_routing_get_port_mixer,
17876 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017877};
17878
17879static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017880 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17881 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017882 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17883 msm_routing_get_port_mixer,
17884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017885 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17886 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017887 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17888 msm_routing_get_port_mixer,
17889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017890 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17891 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17893 msm_routing_get_port_mixer,
17894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017895 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17896 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017897 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17898 msm_routing_get_port_mixer,
17899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017900 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17901 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017902 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17903 msm_routing_get_port_mixer,
17904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017905 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17906 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017907 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17908 msm_routing_get_port_mixer,
17909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017910 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17911 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017912 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17913 msm_routing_get_port_mixer,
17914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017915 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17916 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017917 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17918 msm_routing_get_port_mixer,
17919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017920 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17921 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017922 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17923 msm_routing_get_port_mixer,
17924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017925 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17926 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017927 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17928 msm_routing_get_port_mixer,
17929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017930 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17931 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017932 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17933 msm_routing_get_port_mixer,
17934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017935 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17936 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017937 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17938 msm_routing_get_port_mixer,
17939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017940 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17941 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017942 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17943 msm_routing_get_port_mixer,
17944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017945 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17946 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017947 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17948 msm_routing_get_port_mixer,
17949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017950 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17951 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017952 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17953 msm_routing_get_port_mixer,
17954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017955 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17956 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017957 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17958 msm_routing_get_port_mixer,
17959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017960 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17961 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017962 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17963 msm_routing_get_port_mixer,
17964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017965 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17966 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017967 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17968 msm_routing_get_port_mixer,
17969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017970 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17971 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017972 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17973 msm_routing_get_port_mixer,
17974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017975 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17976 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017977 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17978 msm_routing_get_port_mixer,
17979 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017980 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17981 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17982 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17983 msm_routing_get_port_mixer,
17984 msm_routing_put_port_mixer),
17985 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17986 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17987 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17988 msm_routing_get_port_mixer,
17989 msm_routing_put_port_mixer),
17990 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17991 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17992 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17993 msm_routing_get_port_mixer,
17994 msm_routing_put_port_mixer),
17995 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17996 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17997 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17998 msm_routing_get_port_mixer,
17999 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018000};
18001
18002static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018003 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18004 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018005 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18006 msm_routing_get_port_mixer,
18007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018008 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18009 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018010 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18011 msm_routing_get_port_mixer,
18012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018013 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18014 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018015 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18016 msm_routing_get_port_mixer,
18017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018018 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18019 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018020 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18021 msm_routing_get_port_mixer,
18022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018023 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18024 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018025 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18026 msm_routing_get_port_mixer,
18027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018028 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18029 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018030 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18031 msm_routing_get_port_mixer,
18032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018033 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18034 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018035 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18036 msm_routing_get_port_mixer,
18037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018038 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18039 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018040 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18041 msm_routing_get_port_mixer,
18042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018043 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18044 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018045 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18046 msm_routing_get_port_mixer,
18047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018048 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18049 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018050 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18051 msm_routing_get_port_mixer,
18052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018053 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18054 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018055 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18056 msm_routing_get_port_mixer,
18057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018058 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18059 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018060 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18061 msm_routing_get_port_mixer,
18062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018063 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18064 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018065 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18066 msm_routing_get_port_mixer,
18067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018068 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18069 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018070 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18071 msm_routing_get_port_mixer,
18072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018073 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18074 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018075 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18076 msm_routing_get_port_mixer,
18077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018078 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18079 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018080 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18081 msm_routing_get_port_mixer,
18082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018083 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18084 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018085 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18086 msm_routing_get_port_mixer,
18087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018088 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18089 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018090 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18091 msm_routing_get_port_mixer,
18092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018093 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18094 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018095 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18096 msm_routing_get_port_mixer,
18097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018098 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18099 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018100 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18101 msm_routing_get_port_mixer,
18102 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018103 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18104 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18105 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18106 msm_routing_get_port_mixer,
18107 msm_routing_put_port_mixer),
18108 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18109 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18110 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18111 msm_routing_get_port_mixer,
18112 msm_routing_put_port_mixer),
18113 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18114 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18115 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18116 msm_routing_get_port_mixer,
18117 msm_routing_put_port_mixer),
18118 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18119 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18120 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18121 msm_routing_get_port_mixer,
18122 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018123};
18124
18125static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018126 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18127 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018128 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18129 msm_routing_get_port_mixer,
18130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018131 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18132 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018133 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18134 msm_routing_get_port_mixer,
18135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018136 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18137 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018138 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18139 msm_routing_get_port_mixer,
18140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018141 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18142 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018143 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18144 msm_routing_get_port_mixer,
18145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018146 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18147 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018148 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18149 msm_routing_get_port_mixer,
18150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018151 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18152 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018153 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18154 msm_routing_get_port_mixer,
18155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018156 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18157 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018158 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18159 msm_routing_get_port_mixer,
18160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018161 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18162 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018163 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18164 msm_routing_get_port_mixer,
18165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018166 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18167 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018168 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18169 msm_routing_get_port_mixer,
18170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018171 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18172 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018173 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18174 msm_routing_get_port_mixer,
18175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018176 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18177 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018178 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18179 msm_routing_get_port_mixer,
18180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018181 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18182 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018183 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18184 msm_routing_get_port_mixer,
18185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018186 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18187 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018188 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18189 msm_routing_get_port_mixer,
18190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018191 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18192 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018193 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18194 msm_routing_get_port_mixer,
18195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018196 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18197 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018198 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18199 msm_routing_get_port_mixer,
18200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18202 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018203 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18204 msm_routing_get_port_mixer,
18205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018206 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18207 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018208 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18209 msm_routing_get_port_mixer,
18210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018211 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18212 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018213 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18214 msm_routing_get_port_mixer,
18215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018216 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18217 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018218 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18219 msm_routing_get_port_mixer,
18220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018221 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18222 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018223 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18224 msm_routing_get_port_mixer,
18225 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018226 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18227 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18228 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18229 msm_routing_get_port_mixer,
18230 msm_routing_put_port_mixer),
18231 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18232 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18233 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18234 msm_routing_get_port_mixer,
18235 msm_routing_put_port_mixer),
18236 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18237 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18238 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18239 msm_routing_get_port_mixer,
18240 msm_routing_put_port_mixer),
18241 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18242 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18243 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18244 msm_routing_get_port_mixer,
18245 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018246};
18247
18248static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018249 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18250 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018251 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18252 msm_routing_get_port_mixer,
18253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018254 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18255 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018256 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18257 msm_routing_get_port_mixer,
18258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18260 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018261 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18262 msm_routing_get_port_mixer,
18263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018264 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18265 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018266 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18267 msm_routing_get_port_mixer,
18268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018269 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18270 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018271 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18272 msm_routing_get_port_mixer,
18273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018274 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18275 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018276 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18277 msm_routing_get_port_mixer,
18278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018279 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18280 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018281 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18282 msm_routing_get_port_mixer,
18283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018284 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18285 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018286 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18287 msm_routing_get_port_mixer,
18288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018289 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18290 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018291 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18292 msm_routing_get_port_mixer,
18293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018294 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18295 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018296 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18297 msm_routing_get_port_mixer,
18298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018299 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18300 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018301 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18302 msm_routing_get_port_mixer,
18303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018304 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18305 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018306 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18307 msm_routing_get_port_mixer,
18308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018309 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18310 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018311 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18312 msm_routing_get_port_mixer,
18313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018314 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18315 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018316 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18317 msm_routing_get_port_mixer,
18318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018319 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18320 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018321 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18322 msm_routing_get_port_mixer,
18323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018324 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18325 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018326 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18327 msm_routing_get_port_mixer,
18328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018329 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18330 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018331 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18332 msm_routing_get_port_mixer,
18333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018334 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18335 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018336 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18337 msm_routing_get_port_mixer,
18338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018339 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18340 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018341 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18342 msm_routing_get_port_mixer,
18343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018344 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18345 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018346 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18347 msm_routing_get_port_mixer,
18348 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018349 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18350 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18351 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18352 msm_routing_get_port_mixer,
18353 msm_routing_put_port_mixer),
18354 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18355 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18356 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18357 msm_routing_get_port_mixer,
18358 msm_routing_put_port_mixer),
18359 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18360 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18361 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18362 msm_routing_get_port_mixer,
18363 msm_routing_put_port_mixer),
18364 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18365 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18366 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18367 msm_routing_get_port_mixer,
18368 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018369};
18370
18371static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018372 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18373 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018374 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18375 msm_routing_get_port_mixer,
18376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018377 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18378 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018379 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18380 msm_routing_get_port_mixer,
18381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018382 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18383 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018384 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18385 msm_routing_get_port_mixer,
18386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018387 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18388 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018389 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18390 msm_routing_get_port_mixer,
18391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018392 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18393 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018394 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18395 msm_routing_get_port_mixer,
18396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018397 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18398 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018399 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18400 msm_routing_get_port_mixer,
18401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018402 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18403 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018404 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18405 msm_routing_get_port_mixer,
18406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018407 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18408 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018409 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18410 msm_routing_get_port_mixer,
18411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018412 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18413 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018414 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18415 msm_routing_get_port_mixer,
18416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018417 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18418 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018419 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18420 msm_routing_get_port_mixer,
18421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018422 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18423 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018424 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18425 msm_routing_get_port_mixer,
18426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018427 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18428 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018429 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18430 msm_routing_get_port_mixer,
18431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18433 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018434 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18435 msm_routing_get_port_mixer,
18436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018437 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18438 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018439 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18440 msm_routing_get_port_mixer,
18441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018442 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18443 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018444 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18445 msm_routing_get_port_mixer,
18446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018447 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18448 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018449 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18450 msm_routing_get_port_mixer,
18451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018452 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18453 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018454 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18455 msm_routing_get_port_mixer,
18456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018457 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18458 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018459 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18460 msm_routing_get_port_mixer,
18461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018462 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18463 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018464 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18465 msm_routing_get_port_mixer,
18466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018467 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18468 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018469 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18470 msm_routing_get_port_mixer,
18471 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018472 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18473 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18474 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18475 msm_routing_get_port_mixer,
18476 msm_routing_put_port_mixer),
18477 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18478 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18479 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18480 msm_routing_get_port_mixer,
18481 msm_routing_put_port_mixer),
18482 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18483 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18484 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18485 msm_routing_get_port_mixer,
18486 msm_routing_put_port_mixer),
18487 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18488 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18489 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18490 msm_routing_get_port_mixer,
18491 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018492};
18493
18494static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018495 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18496 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018497 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18498 msm_routing_get_port_mixer,
18499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018500 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18501 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018502 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18503 msm_routing_get_port_mixer,
18504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018505 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18506 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018507 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18508 msm_routing_get_port_mixer,
18509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018510 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18511 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018512 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18513 msm_routing_get_port_mixer,
18514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018515 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18516 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018517 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18518 msm_routing_get_port_mixer,
18519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018520 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18521 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018522 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18523 msm_routing_get_port_mixer,
18524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018525 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18526 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018527 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18528 msm_routing_get_port_mixer,
18529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018530 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18531 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018532 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18533 msm_routing_get_port_mixer,
18534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018535 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18536 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18538 msm_routing_get_port_mixer,
18539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018540 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18541 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018542 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18543 msm_routing_get_port_mixer,
18544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018545 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18546 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018547 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18548 msm_routing_get_port_mixer,
18549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018550 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18551 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018552 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18553 msm_routing_get_port_mixer,
18554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018555 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18556 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018557 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18558 msm_routing_get_port_mixer,
18559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018560 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18561 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018562 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18563 msm_routing_get_port_mixer,
18564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018565 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18566 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018567 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18568 msm_routing_get_port_mixer,
18569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018570 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18571 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018572 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18573 msm_routing_get_port_mixer,
18574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018575 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18576 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018577 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18578 msm_routing_get_port_mixer,
18579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018580 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18581 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018582 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18583 msm_routing_get_port_mixer,
18584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018585 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18586 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018587 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18588 msm_routing_get_port_mixer,
18589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018590 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18591 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018592 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18593 msm_routing_get_port_mixer,
18594 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018595 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18596 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18597 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18598 msm_routing_get_port_mixer,
18599 msm_routing_put_port_mixer),
18600 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18601 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18602 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18603 msm_routing_get_port_mixer,
18604 msm_routing_put_port_mixer),
18605 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18606 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18607 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18608 msm_routing_get_port_mixer,
18609 msm_routing_put_port_mixer),
18610 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18611 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18612 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18613 msm_routing_get_port_mixer,
18614 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018615};
18616
Derek Chenfdcc0982018-10-02 15:14:03 -070018617static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18618 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18619 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18620 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18621 msm_routing_get_port_mixer,
18622 msm_routing_put_port_mixer),
18623};
18624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018625static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018626 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18627 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018628 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18629 msm_routing_get_port_mixer,
18630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018631 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18632 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018633 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18634 msm_routing_get_port_mixer,
18635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018636 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18637 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018638 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18639 msm_routing_get_port_mixer,
18640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018641 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18642 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018643 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18644 msm_routing_get_port_mixer,
18645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018646 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18647 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018648 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18649 msm_routing_get_port_mixer,
18650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018651 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18652 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018653 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18654 msm_routing_get_port_mixer,
18655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018656 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18657 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018658 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18659 msm_routing_get_port_mixer,
18660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018661 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18662 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18664 msm_routing_get_port_mixer,
18665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018666 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18667 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018668 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18669 msm_routing_get_port_mixer,
18670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018671 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18672 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018673 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18674 msm_routing_get_port_mixer,
18675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018676 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18677 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018678 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18679 msm_routing_get_port_mixer,
18680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018681 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18682 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018683 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18684 msm_routing_get_port_mixer,
18685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018686 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18687 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018688 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18689 msm_routing_get_port_mixer,
18690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018691 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18692 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018693 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18694 msm_routing_get_port_mixer,
18695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018696 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18697 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018698 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18699 msm_routing_get_port_mixer,
18700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018701 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18702 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018703 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18704 msm_routing_get_port_mixer,
18705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018706 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18707 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018708 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18709 msm_routing_get_port_mixer,
18710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018711 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18712 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018713 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18714 msm_routing_get_port_mixer,
18715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018716 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18717 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018718 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18719 msm_routing_get_port_mixer,
18720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018721 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18722 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018723 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18724 msm_routing_get_port_mixer,
18725 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018726 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18727 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18728 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18729 msm_routing_get_port_mixer,
18730 msm_routing_put_port_mixer),
18731 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18732 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18733 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18734 msm_routing_get_port_mixer,
18735 msm_routing_put_port_mixer),
18736 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18737 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18738 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18739 msm_routing_get_port_mixer,
18740 msm_routing_put_port_mixer),
18741 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18742 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18743 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18744 msm_routing_get_port_mixer,
18745 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018746};
18747
18748static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018749 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18750 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018751 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18752 msm_routing_get_port_mixer,
18753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018754 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18755 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018756 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18757 msm_routing_get_port_mixer,
18758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018759 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18760 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018761 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18762 msm_routing_get_port_mixer,
18763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018764 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18765 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018766 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18767 msm_routing_get_port_mixer,
18768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018769 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18770 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018771 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18772 msm_routing_get_port_mixer,
18773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018774 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18775 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018776 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18777 msm_routing_get_port_mixer,
18778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018779 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18780 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018781 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18782 msm_routing_get_port_mixer,
18783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018784 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18785 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018786 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18787 msm_routing_get_port_mixer,
18788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018789 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18790 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018791 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18792 msm_routing_get_port_mixer,
18793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018794 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18795 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018796 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18797 msm_routing_get_port_mixer,
18798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018799 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18800 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018801 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18802 msm_routing_get_port_mixer,
18803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018804 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18805 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018806 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18807 msm_routing_get_port_mixer,
18808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018809 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18810 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018811 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18812 msm_routing_get_port_mixer,
18813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018814 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18815 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018816 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18817 msm_routing_get_port_mixer,
18818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018819 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18820 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018821 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18822 msm_routing_get_port_mixer,
18823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018824 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18825 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018826 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18827 msm_routing_get_port_mixer,
18828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018829 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18830 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018831 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18832 msm_routing_get_port_mixer,
18833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018834 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18835 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018836 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18837 msm_routing_get_port_mixer,
18838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018839 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18840 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018841 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18842 msm_routing_get_port_mixer,
18843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018844 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18845 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018846 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18847 msm_routing_get_port_mixer,
18848 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018849 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18850 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18851 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18852 msm_routing_get_port_mixer,
18853 msm_routing_put_port_mixer),
18854 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18855 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18856 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18857 msm_routing_get_port_mixer,
18858 msm_routing_put_port_mixer),
18859 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18860 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18861 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18862 msm_routing_get_port_mixer,
18863 msm_routing_put_port_mixer),
18864 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18865 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18866 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18867 msm_routing_get_port_mixer,
18868 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018869};
18870
18871static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018872 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18873 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018874 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18875 msm_routing_get_port_mixer,
18876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018877 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18878 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018879 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18880 msm_routing_get_port_mixer,
18881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018882 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18883 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018884 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18885 msm_routing_get_port_mixer,
18886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018887 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18888 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018889 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18890 msm_routing_get_port_mixer,
18891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018892 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18893 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018894 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18895 msm_routing_get_port_mixer,
18896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018897 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18898 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018899 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18900 msm_routing_get_port_mixer,
18901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018902 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18903 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018904 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18905 msm_routing_get_port_mixer,
18906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018907 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18908 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018909 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18910 msm_routing_get_port_mixer,
18911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018912 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18913 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018914 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18915 msm_routing_get_port_mixer,
18916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018917 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18918 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018919 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18920 msm_routing_get_port_mixer,
18921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018922 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18923 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018924 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18925 msm_routing_get_port_mixer,
18926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018927 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18928 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018929 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18930 msm_routing_get_port_mixer,
18931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018932 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18933 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018934 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18935 msm_routing_get_port_mixer,
18936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018937 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18938 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018939 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18940 msm_routing_get_port_mixer,
18941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018942 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18943 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018944 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18945 msm_routing_get_port_mixer,
18946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018947 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18948 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018949 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18950 msm_routing_get_port_mixer,
18951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018952 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18953 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018954 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18955 msm_routing_get_port_mixer,
18956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018957 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18958 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018959 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18960 msm_routing_get_port_mixer,
18961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018962 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18963 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018964 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18965 msm_routing_get_port_mixer,
18966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018967 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18968 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018969 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18970 msm_routing_get_port_mixer,
18971 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018972 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18973 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18974 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18975 msm_routing_get_port_mixer,
18976 msm_routing_put_port_mixer),
18977 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18978 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18979 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18980 msm_routing_get_port_mixer,
18981 msm_routing_put_port_mixer),
18982 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18983 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18984 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18985 msm_routing_get_port_mixer,
18986 msm_routing_put_port_mixer),
18987 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18988 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18989 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18990 msm_routing_get_port_mixer,
18991 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018992};
18993
18994static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018995 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18996 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018997 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18998 msm_routing_get_port_mixer,
18999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019000 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19001 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019002 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19003 msm_routing_get_port_mixer,
19004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019005 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19006 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019007 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19008 msm_routing_get_port_mixer,
19009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019010 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19011 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019012 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19013 msm_routing_get_port_mixer,
19014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019015 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19016 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019017 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19018 msm_routing_get_port_mixer,
19019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019020 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19021 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019022 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19023 msm_routing_get_port_mixer,
19024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019025 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19026 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019027 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19028 msm_routing_get_port_mixer,
19029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019030 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19031 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019032 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19033 msm_routing_get_port_mixer,
19034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019035 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19036 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019037 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19038 msm_routing_get_port_mixer,
19039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019040 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19041 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019042 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19043 msm_routing_get_port_mixer,
19044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019045 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19046 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019047 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19048 msm_routing_get_port_mixer,
19049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019050 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19051 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019052 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19053 msm_routing_get_port_mixer,
19054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019055 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19056 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019057 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19058 msm_routing_get_port_mixer,
19059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019060 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19061 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019062 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19063 msm_routing_get_port_mixer,
19064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019065 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19066 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019067 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19068 msm_routing_get_port_mixer,
19069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019070 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19071 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019072 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19073 msm_routing_get_port_mixer,
19074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019075 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19076 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019077 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19078 msm_routing_get_port_mixer,
19079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019080 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19081 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019082 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19083 msm_routing_get_port_mixer,
19084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019085 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19086 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019087 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19088 msm_routing_get_port_mixer,
19089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019090 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19091 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019092 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19093 msm_routing_get_port_mixer,
19094 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019095 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19096 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19097 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19098 msm_routing_get_port_mixer,
19099 msm_routing_put_port_mixer),
19100 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19101 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19102 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19103 msm_routing_get_port_mixer,
19104 msm_routing_put_port_mixer),
19105 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19106 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19107 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19108 msm_routing_get_port_mixer,
19109 msm_routing_put_port_mixer),
19110 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19111 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19112 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19113 msm_routing_get_port_mixer,
19114 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019115};
19116
19117static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019118 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19119 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019120 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19121 msm_routing_get_port_mixer,
19122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019123 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19124 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019125 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19126 msm_routing_get_port_mixer,
19127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019128 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19129 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019130 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19131 msm_routing_get_port_mixer,
19132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019133 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19134 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019135 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19136 msm_routing_get_port_mixer,
19137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019138 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19139 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019140 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19141 msm_routing_get_port_mixer,
19142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019143 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19144 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019145 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19146 msm_routing_get_port_mixer,
19147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019148 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19149 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019150 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19151 msm_routing_get_port_mixer,
19152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019153 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19154 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019155 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19156 msm_routing_get_port_mixer,
19157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019158 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19159 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019160 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19161 msm_routing_get_port_mixer,
19162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019163 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19164 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019165 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19166 msm_routing_get_port_mixer,
19167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019168 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19169 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19171 msm_routing_get_port_mixer,
19172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019173 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19174 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019175 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19176 msm_routing_get_port_mixer,
19177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019178 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19179 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019180 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19181 msm_routing_get_port_mixer,
19182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019183 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19184 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019185 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19186 msm_routing_get_port_mixer,
19187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019188 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19189 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019190 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19191 msm_routing_get_port_mixer,
19192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019193 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19194 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019195 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19196 msm_routing_get_port_mixer,
19197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019198 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19199 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019200 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19201 msm_routing_get_port_mixer,
19202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019203 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19204 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019205 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19206 msm_routing_get_port_mixer,
19207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019208 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19209 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019210 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19211 msm_routing_get_port_mixer,
19212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019213 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19214 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019215 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19216 msm_routing_get_port_mixer,
19217 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019218 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19219 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19220 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19221 msm_routing_get_port_mixer,
19222 msm_routing_put_port_mixer),
19223 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19224 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19225 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19226 msm_routing_get_port_mixer,
19227 msm_routing_put_port_mixer),
19228 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19229 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19230 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19231 msm_routing_get_port_mixer,
19232 msm_routing_put_port_mixer),
19233 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19234 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19235 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19236 msm_routing_get_port_mixer,
19237 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019238};
19239
19240static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019241 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19242 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019243 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19244 msm_routing_get_port_mixer,
19245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019246 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19247 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019248 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19249 msm_routing_get_port_mixer,
19250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019251 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19252 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019253 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19254 msm_routing_get_port_mixer,
19255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019256 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19257 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019258 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19259 msm_routing_get_port_mixer,
19260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019261 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19262 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019263 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19264 msm_routing_get_port_mixer,
19265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019266 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19267 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019268 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19269 msm_routing_get_port_mixer,
19270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019271 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19272 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019273 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19274 msm_routing_get_port_mixer,
19275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019276 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19277 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019278 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19279 msm_routing_get_port_mixer,
19280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019281 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19282 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019283 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19284 msm_routing_get_port_mixer,
19285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019286 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19287 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019288 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19289 msm_routing_get_port_mixer,
19290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019291 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19292 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019293 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19294 msm_routing_get_port_mixer,
19295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019296 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19297 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019298 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19299 msm_routing_get_port_mixer,
19300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019301 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19302 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019303 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19304 msm_routing_get_port_mixer,
19305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019306 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19307 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019308 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19309 msm_routing_get_port_mixer,
19310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019311 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19312 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019313 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19314 msm_routing_get_port_mixer,
19315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019316 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19317 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019318 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19319 msm_routing_get_port_mixer,
19320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019321 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19322 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019323 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19324 msm_routing_get_port_mixer,
19325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019326 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19327 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019328 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19329 msm_routing_get_port_mixer,
19330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019331 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19332 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019333 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19334 msm_routing_get_port_mixer,
19335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019336 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19337 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019338 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19339 msm_routing_get_port_mixer,
19340 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019341 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19342 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19343 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19344 msm_routing_get_port_mixer,
19345 msm_routing_put_port_mixer),
19346 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19347 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19348 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19349 msm_routing_get_port_mixer,
19350 msm_routing_put_port_mixer),
19351 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19352 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19353 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19354 msm_routing_get_port_mixer,
19355 msm_routing_put_port_mixer),
19356 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19357 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19358 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19359 msm_routing_get_port_mixer,
19360 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019361};
19362
19363static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019364 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19365 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019366 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19367 msm_routing_get_port_mixer,
19368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019369 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19370 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019371 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19372 msm_routing_get_port_mixer,
19373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019374 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19375 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019376 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19377 msm_routing_get_port_mixer,
19378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019379 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19380 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019381 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19382 msm_routing_get_port_mixer,
19383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019384 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19385 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019386 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19387 msm_routing_get_port_mixer,
19388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019389 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19390 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019391 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19392 msm_routing_get_port_mixer,
19393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019394 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19395 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019396 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19397 msm_routing_get_port_mixer,
19398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019399 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19400 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19402 msm_routing_get_port_mixer,
19403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019404 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19405 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019406 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19407 msm_routing_get_port_mixer,
19408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019409 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19410 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019411 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19412 msm_routing_get_port_mixer,
19413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019414 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19415 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019416 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19417 msm_routing_get_port_mixer,
19418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019419 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19420 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019421 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19422 msm_routing_get_port_mixer,
19423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019424 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19425 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019426 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19427 msm_routing_get_port_mixer,
19428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019429 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19430 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019431 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19432 msm_routing_get_port_mixer,
19433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019434 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19435 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019436 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19437 msm_routing_get_port_mixer,
19438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019439 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19440 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019441 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19442 msm_routing_get_port_mixer,
19443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019444 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19445 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019446 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19447 msm_routing_get_port_mixer,
19448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019449 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19450 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019451 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19452 msm_routing_get_port_mixer,
19453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019454 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19455 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019456 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19457 msm_routing_get_port_mixer,
19458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019459 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19460 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019461 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19462 msm_routing_get_port_mixer,
19463 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019464 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19465 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19466 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19467 msm_routing_get_port_mixer,
19468 msm_routing_put_port_mixer),
19469 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19470 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19471 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19472 msm_routing_get_port_mixer,
19473 msm_routing_put_port_mixer),
19474 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19475 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19476 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19477 msm_routing_get_port_mixer,
19478 msm_routing_put_port_mixer),
19479 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19480 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19481 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19482 msm_routing_get_port_mixer,
19483 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019484};
19485
19486static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019487 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19488 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019489 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19490 msm_routing_get_port_mixer,
19491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019492 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19493 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019494 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19495 msm_routing_get_port_mixer,
19496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019497 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19498 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019499 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19500 msm_routing_get_port_mixer,
19501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019502 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19503 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019504 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19505 msm_routing_get_port_mixer,
19506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19508 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19510 msm_routing_get_port_mixer,
19511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019512 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19513 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019514 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19515 msm_routing_get_port_mixer,
19516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019517 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19518 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019519 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19520 msm_routing_get_port_mixer,
19521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019522 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19523 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019524 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19525 msm_routing_get_port_mixer,
19526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019527 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19528 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019529 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19530 msm_routing_get_port_mixer,
19531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019532 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19533 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019534 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19535 msm_routing_get_port_mixer,
19536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019537 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19538 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019539 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19540 msm_routing_get_port_mixer,
19541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019542 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19543 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019544 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19545 msm_routing_get_port_mixer,
19546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019547 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19548 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019549 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19550 msm_routing_get_port_mixer,
19551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019552 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19553 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019554 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19555 msm_routing_get_port_mixer,
19556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019557 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19558 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019559 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19560 msm_routing_get_port_mixer,
19561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019562 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19563 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019564 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19565 msm_routing_get_port_mixer,
19566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019567 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19568 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019569 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19570 msm_routing_get_port_mixer,
19571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019572 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19573 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019574 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19575 msm_routing_get_port_mixer,
19576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019577 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19578 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019579 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19580 msm_routing_get_port_mixer,
19581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019582 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19583 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019584 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19585 msm_routing_get_port_mixer,
19586 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019587 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19588 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19589 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19590 msm_routing_get_port_mixer,
19591 msm_routing_put_port_mixer),
19592 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19593 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19594 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19595 msm_routing_get_port_mixer,
19596 msm_routing_put_port_mixer),
19597 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19598 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19599 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19600 msm_routing_get_port_mixer,
19601 msm_routing_put_port_mixer),
19602 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19603 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19604 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19605 msm_routing_get_port_mixer,
19606 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019607};
19608
Derek Chenb9048cb2019-03-07 14:54:13 -050019609static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19610 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19611 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19612 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19613 msm_routing_get_port_mixer,
19614 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019615 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19616 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19617 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19618 msm_routing_get_port_mixer,
19619 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019620};
19621
Rohit Kumara5077932017-09-10 22:05:05 +053019622static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019623 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19624 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019625 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19626 msm_routing_get_port_mixer,
19627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019628 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19629 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019630 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19631 msm_routing_get_port_mixer,
19632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019633 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19634 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019635 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19636 msm_routing_get_port_mixer,
19637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019638 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19639 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019640 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19641 msm_routing_get_port_mixer,
19642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019643 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19644 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019645 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19646 msm_routing_get_port_mixer,
19647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019648 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19649 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019650 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19651 msm_routing_get_port_mixer,
19652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019653 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19654 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019655 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19656 msm_routing_get_port_mixer,
19657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019658 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19659 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019660 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19661 msm_routing_get_port_mixer,
19662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019663 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19664 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019665 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19666 msm_routing_get_port_mixer,
19667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019668 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19669 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019670 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19671 msm_routing_get_port_mixer,
19672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019673 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19674 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019675 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19676 msm_routing_get_port_mixer,
19677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019678 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19679 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019680 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19681 msm_routing_get_port_mixer,
19682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019683 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19684 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019685 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19686 msm_routing_get_port_mixer,
19687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019688 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19689 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019690 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19691 msm_routing_get_port_mixer,
19692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019693 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19694 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019695 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19696 msm_routing_get_port_mixer,
19697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019698 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19699 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019700 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19701 msm_routing_get_port_mixer,
19702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019703 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19704 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019705 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19706 msm_routing_get_port_mixer,
19707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019708 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19709 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019710 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19711 msm_routing_get_port_mixer,
19712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019713 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19714 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019715 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19716 msm_routing_get_port_mixer,
19717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019718 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19719 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019720 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19721 msm_routing_get_port_mixer,
19722 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019723 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19724 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19725 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19726 msm_routing_get_port_mixer,
19727 msm_routing_put_port_mixer),
19728 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19729 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19730 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19731 msm_routing_get_port_mixer,
19732 msm_routing_put_port_mixer),
19733 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19734 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19735 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19736 msm_routing_get_port_mixer,
19737 msm_routing_put_port_mixer),
19738 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19739 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19740 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19741 msm_routing_get_port_mixer,
19742 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019743};
19744
19745static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019746 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19747 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019748 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19749 msm_routing_get_port_mixer,
19750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019751 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19752 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019753 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19754 msm_routing_get_port_mixer,
19755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019756 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19757 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019758 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19759 msm_routing_get_port_mixer,
19760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019761 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19762 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019763 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19764 msm_routing_get_port_mixer,
19765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019766 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19767 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019768 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19769 msm_routing_get_port_mixer,
19770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019771 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19772 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019773 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19774 msm_routing_get_port_mixer,
19775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019776 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19777 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019778 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19779 msm_routing_get_port_mixer,
19780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019781 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19782 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019783 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19784 msm_routing_get_port_mixer,
19785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019786 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19787 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019788 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19789 msm_routing_get_port_mixer,
19790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019791 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19792 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019793 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19794 msm_routing_get_port_mixer,
19795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019796 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19797 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019798 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19799 msm_routing_get_port_mixer,
19800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019801 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19802 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019803 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19804 msm_routing_get_port_mixer,
19805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019806 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19807 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019808 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19809 msm_routing_get_port_mixer,
19810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019811 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19812 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019813 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19814 msm_routing_get_port_mixer,
19815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019816 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19817 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019818 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19819 msm_routing_get_port_mixer,
19820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019821 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19822 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019823 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19824 msm_routing_get_port_mixer,
19825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019826 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19827 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019828 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19829 msm_routing_get_port_mixer,
19830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019831 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19832 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019833 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19834 msm_routing_get_port_mixer,
19835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019836 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19837 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019838 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19839 msm_routing_get_port_mixer,
19840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019841 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19842 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019843 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19844 msm_routing_get_port_mixer,
19845 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019846 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19847 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19848 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19849 msm_routing_get_port_mixer,
19850 msm_routing_put_port_mixer),
19851 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19852 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19853 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19854 msm_routing_get_port_mixer,
19855 msm_routing_put_port_mixer),
19856 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19857 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19858 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19859 msm_routing_get_port_mixer,
19860 msm_routing_put_port_mixer),
19861 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19862 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19863 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19864 msm_routing_get_port_mixer,
19865 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019866};
19867
19868static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019869 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19870 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019871 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19872 msm_routing_get_port_mixer,
19873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019874 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19875 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019876 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19877 msm_routing_get_port_mixer,
19878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019879 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19880 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019881 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19882 msm_routing_get_port_mixer,
19883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019884 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19885 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019886 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19887 msm_routing_get_port_mixer,
19888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019889 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19890 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019891 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19892 msm_routing_get_port_mixer,
19893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019894 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19895 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019896 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19897 msm_routing_get_port_mixer,
19898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019899 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19900 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019901 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19902 msm_routing_get_port_mixer,
19903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019904 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19905 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019906 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19907 msm_routing_get_port_mixer,
19908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019909 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19910 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019911 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19912 msm_routing_get_port_mixer,
19913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019914 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19915 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019916 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19917 msm_routing_get_port_mixer,
19918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019919 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19920 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019921 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19922 msm_routing_get_port_mixer,
19923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019924 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19925 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019926 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19927 msm_routing_get_port_mixer,
19928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019929 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19930 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019931 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19932 msm_routing_get_port_mixer,
19933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019934 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19935 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019936 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19937 msm_routing_get_port_mixer,
19938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019939 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19940 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019941 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19942 msm_routing_get_port_mixer,
19943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019944 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19945 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019946 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19947 msm_routing_get_port_mixer,
19948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019949 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19950 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019951 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19952 msm_routing_get_port_mixer,
19953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019954 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19955 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019956 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19957 msm_routing_get_port_mixer,
19958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019959 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19960 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019961 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19962 msm_routing_get_port_mixer,
19963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019964 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19965 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019966 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19967 msm_routing_get_port_mixer,
19968 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019969 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19970 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19971 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19972 msm_routing_get_port_mixer,
19973 msm_routing_put_port_mixer),
19974 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19975 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19976 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19977 msm_routing_get_port_mixer,
19978 msm_routing_put_port_mixer),
19979 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19980 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19981 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19982 msm_routing_get_port_mixer,
19983 msm_routing_put_port_mixer),
19984 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19985 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19986 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19987 msm_routing_get_port_mixer,
19988 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019989};
19990
19991static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019992 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19993 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019994 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19995 msm_routing_get_port_mixer,
19996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019997 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19998 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019999 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20000 msm_routing_get_port_mixer,
20001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020002 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20003 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020004 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20005 msm_routing_get_port_mixer,
20006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020007 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20008 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020009 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20010 msm_routing_get_port_mixer,
20011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020012 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20013 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020014 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20015 msm_routing_get_port_mixer,
20016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020017 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20018 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020019 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20020 msm_routing_get_port_mixer,
20021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020022 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20023 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020024 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20025 msm_routing_get_port_mixer,
20026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020027 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20028 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020029 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20030 msm_routing_get_port_mixer,
20031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020032 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20033 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020034 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20035 msm_routing_get_port_mixer,
20036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020037 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20038 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020039 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20040 msm_routing_get_port_mixer,
20041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020042 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20043 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020044 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20045 msm_routing_get_port_mixer,
20046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020047 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20048 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020049 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20050 msm_routing_get_port_mixer,
20051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020052 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20053 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020054 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20055 msm_routing_get_port_mixer,
20056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020057 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20058 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020059 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20060 msm_routing_get_port_mixer,
20061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020062 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20063 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020064 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20065 msm_routing_get_port_mixer,
20066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020067 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20068 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020069 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20070 msm_routing_get_port_mixer,
20071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020072 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20073 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020074 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20075 msm_routing_get_port_mixer,
20076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020077 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20078 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020079 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20080 msm_routing_get_port_mixer,
20081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020082 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20083 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020084 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20085 msm_routing_get_port_mixer,
20086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020087 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20088 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020089 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20090 msm_routing_get_port_mixer,
20091 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020092 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20093 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20094 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20095 msm_routing_get_port_mixer,
20096 msm_routing_put_port_mixer),
20097 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20098 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20099 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20100 msm_routing_get_port_mixer,
20101 msm_routing_put_port_mixer),
20102 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20103 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20104 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20105 msm_routing_get_port_mixer,
20106 msm_routing_put_port_mixer),
20107 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20108 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20109 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20110 msm_routing_get_port_mixer,
20111 msm_routing_put_port_mixer),
20112};
20113
20114static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20115 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20116 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20117 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20118 msm_routing_get_port_mixer,
20119 msm_routing_put_port_mixer),
20120 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20121 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20122 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20123 msm_routing_get_port_mixer,
20124 msm_routing_put_port_mixer),
20125 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20126 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20127 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20128 msm_routing_get_port_mixer,
20129 msm_routing_put_port_mixer),
20130 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20131 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20132 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20133 msm_routing_get_port_mixer,
20134 msm_routing_put_port_mixer),
20135 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20136 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20137 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20138 msm_routing_get_port_mixer,
20139 msm_routing_put_port_mixer),
20140 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20141 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20142 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20143 msm_routing_get_port_mixer,
20144 msm_routing_put_port_mixer),
20145 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20146 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20147 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20148 msm_routing_get_port_mixer,
20149 msm_routing_put_port_mixer),
20150 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20151 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20152 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20153 msm_routing_get_port_mixer,
20154 msm_routing_put_port_mixer),
20155 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20156 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20157 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20158 msm_routing_get_port_mixer,
20159 msm_routing_put_port_mixer),
20160 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20161 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20162 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20163 msm_routing_get_port_mixer,
20164 msm_routing_put_port_mixer),
20165 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20166 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20167 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20168 msm_routing_get_port_mixer,
20169 msm_routing_put_port_mixer),
20170 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20171 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20172 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20173 msm_routing_get_port_mixer,
20174 msm_routing_put_port_mixer),
20175 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20176 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20177 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20178 msm_routing_get_port_mixer,
20179 msm_routing_put_port_mixer),
20180 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20181 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20182 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20183 msm_routing_get_port_mixer,
20184 msm_routing_put_port_mixer),
20185 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20186 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20187 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20188 msm_routing_get_port_mixer,
20189 msm_routing_put_port_mixer),
20190 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20191 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20192 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20193 msm_routing_get_port_mixer,
20194 msm_routing_put_port_mixer),
20195 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20196 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20197 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20198 msm_routing_get_port_mixer,
20199 msm_routing_put_port_mixer),
20200 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20201 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20202 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20203 msm_routing_get_port_mixer,
20204 msm_routing_put_port_mixer),
20205 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20206 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20207 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20208 msm_routing_get_port_mixer,
20209 msm_routing_put_port_mixer),
20210 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20211 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20212 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20213 msm_routing_get_port_mixer,
20214 msm_routing_put_port_mixer),
20215 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20216 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20217 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20218 msm_routing_get_port_mixer,
20219 msm_routing_put_port_mixer),
20220 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20221 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20222 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20223 msm_routing_get_port_mixer,
20224 msm_routing_put_port_mixer),
20225 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20226 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20227 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20228 msm_routing_get_port_mixer,
20229 msm_routing_put_port_mixer),
20230 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20231 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20232 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20233 msm_routing_get_port_mixer,
20234 msm_routing_put_port_mixer),
20235};
20236
20237static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20238 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20239 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20240 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20241 msm_routing_get_port_mixer,
20242 msm_routing_put_port_mixer),
20243 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20244 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20245 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20246 msm_routing_get_port_mixer,
20247 msm_routing_put_port_mixer),
20248 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20249 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20250 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20251 msm_routing_get_port_mixer,
20252 msm_routing_put_port_mixer),
20253 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20254 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20255 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20256 msm_routing_get_port_mixer,
20257 msm_routing_put_port_mixer),
20258 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20259 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20260 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20261 msm_routing_get_port_mixer,
20262 msm_routing_put_port_mixer),
20263 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20264 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20265 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20266 msm_routing_get_port_mixer,
20267 msm_routing_put_port_mixer),
20268 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20269 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20270 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20271 msm_routing_get_port_mixer,
20272 msm_routing_put_port_mixer),
20273 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20274 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20275 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20276 msm_routing_get_port_mixer,
20277 msm_routing_put_port_mixer),
20278 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20279 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20280 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20281 msm_routing_get_port_mixer,
20282 msm_routing_put_port_mixer),
20283 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20284 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20285 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20286 msm_routing_get_port_mixer,
20287 msm_routing_put_port_mixer),
20288 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20289 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20290 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20291 msm_routing_get_port_mixer,
20292 msm_routing_put_port_mixer),
20293 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20294 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20295 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20296 msm_routing_get_port_mixer,
20297 msm_routing_put_port_mixer),
20298 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20299 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20300 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20301 msm_routing_get_port_mixer,
20302 msm_routing_put_port_mixer),
20303 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20304 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20305 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20306 msm_routing_get_port_mixer,
20307 msm_routing_put_port_mixer),
20308 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20309 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20310 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20311 msm_routing_get_port_mixer,
20312 msm_routing_put_port_mixer),
20313 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20314 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20315 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20316 msm_routing_get_port_mixer,
20317 msm_routing_put_port_mixer),
20318 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20319 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20320 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20321 msm_routing_get_port_mixer,
20322 msm_routing_put_port_mixer),
20323 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20324 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20325 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20326 msm_routing_get_port_mixer,
20327 msm_routing_put_port_mixer),
20328 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20329 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20330 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20331 msm_routing_get_port_mixer,
20332 msm_routing_put_port_mixer),
20333 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20334 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20335 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20336 msm_routing_get_port_mixer,
20337 msm_routing_put_port_mixer),
20338 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20339 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20340 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20341 msm_routing_get_port_mixer,
20342 msm_routing_put_port_mixer),
20343 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20344 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20345 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20346 msm_routing_get_port_mixer,
20347 msm_routing_put_port_mixer),
20348 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20349 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20350 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20351 msm_routing_get_port_mixer,
20352 msm_routing_put_port_mixer),
20353 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20354 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20355 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20356 msm_routing_get_port_mixer,
20357 msm_routing_put_port_mixer),
20358};
20359
20360static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20361 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20362 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20363 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20364 msm_routing_get_port_mixer,
20365 msm_routing_put_port_mixer),
20366 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20367 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20368 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20369 msm_routing_get_port_mixer,
20370 msm_routing_put_port_mixer),
20371 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20372 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20373 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20374 msm_routing_get_port_mixer,
20375 msm_routing_put_port_mixer),
20376 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20377 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20378 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20379 msm_routing_get_port_mixer,
20380 msm_routing_put_port_mixer),
20381 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20382 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20383 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20384 msm_routing_get_port_mixer,
20385 msm_routing_put_port_mixer),
20386 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20387 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20388 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20389 msm_routing_get_port_mixer,
20390 msm_routing_put_port_mixer),
20391 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20392 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20393 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20394 msm_routing_get_port_mixer,
20395 msm_routing_put_port_mixer),
20396 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20397 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20398 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20399 msm_routing_get_port_mixer,
20400 msm_routing_put_port_mixer),
20401 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20402 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20403 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20404 msm_routing_get_port_mixer,
20405 msm_routing_put_port_mixer),
20406 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20407 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20408 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20409 msm_routing_get_port_mixer,
20410 msm_routing_put_port_mixer),
20411 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20412 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20413 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20414 msm_routing_get_port_mixer,
20415 msm_routing_put_port_mixer),
20416 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20417 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20418 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20419 msm_routing_get_port_mixer,
20420 msm_routing_put_port_mixer),
20421 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20422 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20423 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20424 msm_routing_get_port_mixer,
20425 msm_routing_put_port_mixer),
20426 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20427 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20428 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20429 msm_routing_get_port_mixer,
20430 msm_routing_put_port_mixer),
20431 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20432 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20433 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20434 msm_routing_get_port_mixer,
20435 msm_routing_put_port_mixer),
20436 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20437 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20438 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20439 msm_routing_get_port_mixer,
20440 msm_routing_put_port_mixer),
20441 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20442 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20443 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20444 msm_routing_get_port_mixer,
20445 msm_routing_put_port_mixer),
20446 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20447 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20448 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20449 msm_routing_get_port_mixer,
20450 msm_routing_put_port_mixer),
20451 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20452 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20453 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20454 msm_routing_get_port_mixer,
20455 msm_routing_put_port_mixer),
20456 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20457 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20458 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20459 msm_routing_get_port_mixer,
20460 msm_routing_put_port_mixer),
20461 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20462 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20463 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20464 msm_routing_get_port_mixer,
20465 msm_routing_put_port_mixer),
20466 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20467 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20468 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20469 msm_routing_get_port_mixer,
20470 msm_routing_put_port_mixer),
20471 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20472 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20473 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20474 msm_routing_get_port_mixer,
20475 msm_routing_put_port_mixer),
20476 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20477 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20478 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20479 msm_routing_get_port_mixer,
20480 msm_routing_put_port_mixer),
20481};
20482
20483static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20484 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20485 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20486 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20487 msm_routing_get_port_mixer,
20488 msm_routing_put_port_mixer),
20489 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20490 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20491 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20492 msm_routing_get_port_mixer,
20493 msm_routing_put_port_mixer),
20494 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20495 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20496 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20497 msm_routing_get_port_mixer,
20498 msm_routing_put_port_mixer),
20499 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20500 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20501 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20502 msm_routing_get_port_mixer,
20503 msm_routing_put_port_mixer),
20504 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20505 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20506 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20507 msm_routing_get_port_mixer,
20508 msm_routing_put_port_mixer),
20509 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20510 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20511 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20512 msm_routing_get_port_mixer,
20513 msm_routing_put_port_mixer),
20514 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20515 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20516 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20517 msm_routing_get_port_mixer,
20518 msm_routing_put_port_mixer),
20519 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20520 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20521 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20522 msm_routing_get_port_mixer,
20523 msm_routing_put_port_mixer),
20524 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20525 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20526 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20527 msm_routing_get_port_mixer,
20528 msm_routing_put_port_mixer),
20529 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20530 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20531 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20532 msm_routing_get_port_mixer,
20533 msm_routing_put_port_mixer),
20534 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20535 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20536 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20537 msm_routing_get_port_mixer,
20538 msm_routing_put_port_mixer),
20539 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20540 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20541 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20542 msm_routing_get_port_mixer,
20543 msm_routing_put_port_mixer),
20544 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20545 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20546 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20547 msm_routing_get_port_mixer,
20548 msm_routing_put_port_mixer),
20549 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20550 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20551 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20552 msm_routing_get_port_mixer,
20553 msm_routing_put_port_mixer),
20554 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20555 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20556 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20557 msm_routing_get_port_mixer,
20558 msm_routing_put_port_mixer),
20559 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20560 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20561 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20562 msm_routing_get_port_mixer,
20563 msm_routing_put_port_mixer),
20564 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20565 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20566 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20567 msm_routing_get_port_mixer,
20568 msm_routing_put_port_mixer),
20569 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20570 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20571 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20572 msm_routing_get_port_mixer,
20573 msm_routing_put_port_mixer),
20574 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20575 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20576 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20577 msm_routing_get_port_mixer,
20578 msm_routing_put_port_mixer),
20579 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20580 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20581 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20582 msm_routing_get_port_mixer,
20583 msm_routing_put_port_mixer),
20584 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20585 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20586 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20587 msm_routing_get_port_mixer,
20588 msm_routing_put_port_mixer),
20589 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20590 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20591 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20592 msm_routing_get_port_mixer,
20593 msm_routing_put_port_mixer),
20594 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20595 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20596 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20597 msm_routing_get_port_mixer,
20598 msm_routing_put_port_mixer),
20599 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20600 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20601 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20602 msm_routing_get_port_mixer,
20603 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020604};
20605
Han Lu7b6c5882019-06-09 16:03:21 +080020606static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020607 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20608 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20609 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20610 msm_routing_get_port_mixer,
20611 msm_routing_put_port_mixer),
20612 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20613 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20614 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20615 msm_routing_get_port_mixer,
20616 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020617 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20618 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20619 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20620 msm_routing_get_port_mixer,
20621 msm_routing_put_port_mixer),
20622};
20623
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020624static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020625 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20626 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020627 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020629 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20630 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020631 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020633 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20634 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020635 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020637 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20638 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020639 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020641 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20642 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020643 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20644 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020645 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20646 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20647 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020649 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20650 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020651 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020653 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20654 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020655 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20656 msm_routing_put_port_mixer),
20657};
20658
20659static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020660 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20661 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020662 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020664 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20665 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020666 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020668 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20669 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020670 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020672 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20673 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020674 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020676 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20677 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020678 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20679 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020680 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20681 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20682 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020684 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20685 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020686 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020688 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20689 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020690 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020692 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20693 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020694 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020696 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20697 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020698 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20699 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020700};
20701
20702static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020703 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20704 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020705 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20706 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020707 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20708 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020709 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20710 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020711 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20712 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020713 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20714 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020715 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20716 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020717 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20718 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020719 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20720 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020721 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20722 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020723 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20724 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020725 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20726 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020727 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20728 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020729 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20730 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020731 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20732 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020733 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20734 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020735 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20736 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20737 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20738 msm_routing_put_listen_mixer),
20739 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20740 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20741 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20742 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020743 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20744 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20745 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20746 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20749 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20750 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020751 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20752 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20753 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20754 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755};
20756
20757static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020758 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20759 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020760 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20761 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020762 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
20763 SND_SOC_NOPM,
20764 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020765 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20766 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020767 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20768 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020769 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20770 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020771 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20772 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020773 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20774 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020775 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20776 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020777 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20778 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020779 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20780 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020781 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20782 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020783 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20784 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020785 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20786 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020787 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20788 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20790 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020791 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20792 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20793 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20794 msm_routing_put_listen_mixer),
20795 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20796 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20797 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20798 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020799 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20800 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20801 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20802 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020803 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20804 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20805 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20806 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020807 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20808 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20809 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20810 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020811};
20812
20813static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020814 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20815 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020816 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20817 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020818 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20819 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20821 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020822 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20823 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020824 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20825 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020826 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20827 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020828 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20829 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020830 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20831 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020832 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20833 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020834 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20835 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020836 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20837 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020838 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20839 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020840 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20841 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020842 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20843 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020844 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20845 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020846 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20847 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20848 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20849 msm_routing_put_listen_mixer),
20850 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20851 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20852 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20853 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020854 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20855 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20856 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20857 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20860 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20861 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020862 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20863 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20864 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20865 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020866};
20867
20868static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020869 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020871 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20872 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020873 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20874 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020875 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20876 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020877 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20878 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020879 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20880 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020881 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20882 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020883 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20884 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020885 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20886 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020887 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20888 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020889 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20890 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020891 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20892 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020893 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20894 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020895 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20896 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020897 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20898 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020899 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20900 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020901 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20902 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20903 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20904 msm_routing_put_listen_mixer),
20905 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20906 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20907 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20908 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020909 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20910 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20911 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20912 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20915 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20916 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020917 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20918 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20919 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20920 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020921};
20922
20923static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020924 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20925 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020926 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20927 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020928 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20929 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020930 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20931 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020932 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20933 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020934 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20935 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020936 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20937 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020938 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20939 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020940 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20941 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020942 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20943 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020944 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20945 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020946 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20947 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020948 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20949 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020950 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20951 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020952 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20953 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020954 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20955 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020956 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20957 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20958 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20959 msm_routing_put_listen_mixer),
20960 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20961 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20962 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20963 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020964 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20965 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20966 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20967 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20970 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20971 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020972 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20973 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20974 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20975 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976};
20977
20978static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020979 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20980 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20982 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020983 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20984 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020985 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20986 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020987 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20988 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020989 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20990 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020991 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20992 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020993 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20994 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020995 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20996 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020997 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20998 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020999 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21000 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021001 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21002 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021003 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21004 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021005 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21006 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021007 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21008 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021009 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21010 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021011 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21012 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21013 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21014 msm_routing_put_listen_mixer),
21015 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21016 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21017 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21018 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021019 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21020 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21021 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21022 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021023 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21024 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21025 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21026 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021027 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21028 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21029 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21030 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021031};
21032
21033static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021034 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21035 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021036 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21037 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021038 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21039 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021040 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21041 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021042 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21043 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021044 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21045 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021046 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21047 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021048 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21049 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021050 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21051 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021052 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21053 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021054 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021056 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21057 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021058 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21059 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021060 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21061 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021062 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21063 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021064 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21065 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021066 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21067 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21068 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21069 msm_routing_put_listen_mixer),
21070 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21071 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21072 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21073 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021074 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21075 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21076 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21077 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021078 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21079 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21080 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21081 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021082 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21083 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21084 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21085 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021086};
21087
21088static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021089 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21090 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021091 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21092 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021093 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21094 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021095 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21096 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021097 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21098 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21100 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021101 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21102 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021103 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21104 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021105 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21106 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021107 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21108 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021109 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21110 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021111 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21112 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21114 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021115 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21116 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021117 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21118 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021119 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21120 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021121 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21122 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21123 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21124 msm_routing_put_listen_mixer),
21125 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21126 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21127 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21128 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21131 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21132 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021133 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21134 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21135 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21136 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021137 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21138 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21139 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21140 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021141};
21142
21143static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21144 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21145 0, 1, 0, msm_routing_get_switch_mixer,
21146 msm_routing_put_switch_mixer);
21147
21148static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21149 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21150 0, 1, 0, msm_routing_get_switch_mixer,
21151 msm_routing_put_switch_mixer);
21152
21153static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21154 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21155 0, 1, 0, msm_routing_get_switch_mixer,
21156 msm_routing_put_switch_mixer);
21157
21158static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21159 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21160 0, 1, 0, msm_routing_get_switch_mixer,
21161 msm_routing_put_switch_mixer);
21162
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021163static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21164 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21165 0, 1, 0, msm_routing_get_switch_mixer,
21166 msm_routing_put_switch_mixer);
21167
21168static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021169 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21170 0, 1, 0, msm_routing_get_switch_mixer,
21171 msm_routing_put_switch_mixer);
21172
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021173static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21174 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21175 0, 1, 0, msm_routing_get_switch_mixer,
21176 msm_routing_put_switch_mixer);
21177
21178static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21179 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21180 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21181 msm_routing_put_fm_pcmrx_switch_mixer);
21182
21183static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21184 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21185 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21186 msm_routing_put_int0_mi2s_switch_mixer);
21187
21188static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21189 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21190 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21191 msm_routing_put_int4_mi2s_switch_mixer);
21192
21193static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21194 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21195 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21196 msm_routing_put_pri_mi2s_switch_mixer);
21197
21198static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21199 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21200 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21201 msm_routing_put_sec_mi2s_switch_mixer);
21202
21203static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21204 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21205 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21206 msm_routing_put_tert_mi2s_switch_mixer);
21207
21208static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21209 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21210 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21211 msm_routing_put_quat_mi2s_switch_mixer);
21212
Rohit Kumara5077932017-09-10 22:05:05 +053021213static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21214 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21215 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21216 msm_routing_put_quin_mi2s_switch_mixer);
21217
Karthikeyan Manic3700752019-03-11 18:33:53 -070021218static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21219 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21220 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21221 msm_routing_put_sen_mi2s_switch_mixer);
21222
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021223static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21224 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21225 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21226 msm_routing_put_hfp_switch_mixer);
21227
21228static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21229 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21230 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21231 msm_routing_put_hfp_switch_mixer);
21232
21233static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21234 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21235 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21236 msm_routing_put_hfp_switch_mixer);
21237
21238static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21239 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21240 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21241 msm_routing_put_hfp_switch_mixer);
21242
21243static const struct snd_kcontrol_new usb_switch_mixer_controls =
21244 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21245 0, 1, 0, msm_routing_get_usb_switch_mixer,
21246 msm_routing_put_usb_switch_mixer);
21247
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021248static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21249 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21250 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21251 msm_routing_a2dp_switch_mixer_put);
21252
Zhou Songcaa541d2019-02-19 18:37:47 +080021253static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21254 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21255 0, 1, 0, msm_routing_sco_switch_mixer_get,
21256 msm_routing_sco_switch_mixer_put);
21257
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021258static const struct soc_enum lsm_port_enum =
21259 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21260
21261static const char * const lsm_func_text[] = {
21262 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21263};
21264static const struct soc_enum lsm_func_enum =
21265 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21266
21267static const struct snd_kcontrol_new lsm_controls[] = {
21268 /* kcontrol of lsm_function */
21269 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21270 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21271 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21272 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21273 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21274 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21275 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21276 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21277 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21278 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21279 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21280 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21281 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21282 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21283 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21284 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21285 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21286 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021287 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21288 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021289 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21290 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021291 /* kcontrol of lsm_port */
21292 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21293 msm_routing_lsm_port_get,
21294 msm_routing_lsm_port_put),
21295 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21296 msm_routing_lsm_port_get,
21297 msm_routing_lsm_port_put),
21298 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21299 msm_routing_lsm_port_get,
21300 msm_routing_lsm_port_put),
21301 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21302 msm_routing_lsm_port_get,
21303 msm_routing_lsm_port_put),
21304 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21305 msm_routing_lsm_port_get,
21306 msm_routing_lsm_port_put),
21307 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21308 msm_routing_lsm_port_get,
21309 msm_routing_lsm_port_put),
21310 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21311 msm_routing_lsm_port_get,
21312 msm_routing_lsm_port_put),
21313 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21314 msm_routing_lsm_port_get,
21315 msm_routing_lsm_port_put),
21316};
21317
21318static const char * const aanc_slim_0_rx_text[] = {
21319 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21320 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21321};
21322
21323static const struct soc_enum aanc_slim_0_rx_enum =
21324 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21325 aanc_slim_0_rx_text);
21326
21327static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21328 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21329 msm_routing_slim_0_rx_aanc_mux_get,
21330 msm_routing_slim_0_rx_aanc_mux_put)
21331};
21332
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021333static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21334 struct snd_ctl_elem_value *ucontrol)
21335{
21336 ucontrol->value.integer.value[0] = aanc_level;
21337
21338 return 0;
21339}
21340
21341static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21342 struct snd_ctl_elem_value *ucontrol)
21343{
21344 int ret = 0;
21345
21346 mutex_lock(&routing_lock);
21347 aanc_level = ucontrol->value.integer.value[0];
21348 pr_debug("%s: value: %ld\n",
21349 __func__, ucontrol->value.integer.value[0]);
21350 ret = afe_set_aanc_noise_level(aanc_level);
21351 mutex_unlock(&routing_lock);
21352
21353 return ret;
21354}
21355
21356static const struct snd_kcontrol_new aanc_noise_level[] = {
21357 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21358 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21359};
21360
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021361static int msm_routing_get_stereo_to_custom_stereo_control(
21362 struct snd_kcontrol *kcontrol,
21363 struct snd_ctl_elem_value *ucontrol)
21364{
21365 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21366 return 0;
21367}
21368
21369static int msm_routing_put_stereo_to_custom_stereo_control(
21370 struct snd_kcontrol *kcontrol,
21371 struct snd_ctl_elem_value *ucontrol)
21372{
21373 int flag = 0, i = 0, rc = 0, idx = 0;
21374 int be_index = 0, port_id, topo_id;
21375 unsigned int session_id = 0;
21376 uint16_t op_FL_ip_FL_weight = 0;
21377 uint16_t op_FL_ip_FR_weight = 0;
21378 uint16_t op_FR_ip_FL_weight = 0;
21379 uint16_t op_FR_ip_FR_weight = 0;
21380
21381 flag = ucontrol->value.integer.value[0];
21382 pr_debug("%s E flag %d\n", __func__, flag);
21383
21384 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21385 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21386 __func__, is_custom_stereo_on, flag);
21387 return 0;
21388 }
21389 is_custom_stereo_on = flag ? true : false;
21390 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21391 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21392 port_id = msm_bedais[be_index].port_id;
21393 if (!msm_bedais[be_index].active)
21394 continue;
21395 if ((port_id != SLIMBUS_0_RX) &&
21396 (port_id != RT_PROXY_PORT_001_RX) &&
21397 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21398 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21399 continue;
21400
21401 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21402 MSM_FRONTEND_DAI_MM_SIZE) {
21403 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21404 LEGACY_PCM_MODE)
21405 goto skip_send_custom_stereo;
21406 session_id =
21407 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21408 if (is_custom_stereo_on) {
21409 op_FL_ip_FL_weight =
21410 Q14_GAIN_ZERO_POINT_FIVE;
21411 op_FL_ip_FR_weight =
21412 Q14_GAIN_ZERO_POINT_FIVE;
21413 op_FR_ip_FL_weight =
21414 Q14_GAIN_ZERO_POINT_FIVE;
21415 op_FR_ip_FR_weight =
21416 Q14_GAIN_ZERO_POINT_FIVE;
21417 } else {
21418 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21419 op_FL_ip_FR_weight = 0;
21420 op_FR_ip_FL_weight = 0;
21421 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21422 }
21423 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21424 unsigned long copp =
21425 session_copp_map[i]
21426 [SESSION_TYPE_RX][be_index];
21427 if (!test_bit(idx, &copp))
21428 goto skip_send_custom_stereo;
21429 topo_id = adm_get_topology_for_port_copp_idx(
21430 msm_bedais[be_index].port_id, idx);
21431 if (topo_id < 0)
21432 pr_debug("%s:Err:custom stereo topo %d",
21433 __func__, topo_id);
21434 pr_debug("idx %d\n", idx);
21435 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21436 rc = msm_ds2_dap_set_custom_stereo_onoff
21437 (msm_bedais[be_index].port_id,
21438 idx, is_custom_stereo_on);
21439 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21440 rc = dolby_dap_set_custom_stereo_onoff(
21441 msm_bedais[be_index].port_id,
21442 idx, is_custom_stereo_on);
21443 else
21444 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21445 (msm_bedais[be_index].port_id,
21446 idx, session_id,
21447 op_FL_ip_FL_weight,
21448 op_FL_ip_FR_weight,
21449 op_FR_ip_FL_weight,
21450 op_FR_ip_FR_weight);
21451 if (rc < 0)
21452skip_send_custom_stereo:
21453 pr_err("%s: err setting custom stereo\n",
21454 __func__);
21455 }
21456
21457 }
21458 }
21459 return 0;
21460}
21461
21462static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21463 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21464 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21465 msm_routing_put_stereo_to_custom_stereo_control),
21466};
21467
21468static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21469 struct snd_ctl_elem_value *ucontrol)
21470{
21471 return 0;
21472}
21473
21474static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21475 struct snd_ctl_elem_value *ucontrol)
21476{
21477 int i = 0, j;
21478 int num_app_types = ucontrol->value.integer.value[i++];
21479
21480 pr_debug("%s\n", __func__);
21481
21482 memset(app_type_cfg, 0, MAX_APP_TYPES*
21483 sizeof(struct msm_pcm_routing_app_type_data));
21484 if (num_app_types > MAX_APP_TYPES) {
21485 pr_err("%s: number of app types exceed the max supported\n",
21486 __func__);
21487 return -EINVAL;
21488 }
21489 for (j = 0; j < num_app_types; j++) {
21490 app_type_cfg[j].app_type =
21491 ucontrol->value.integer.value[i++];
21492 app_type_cfg[j].sample_rate =
21493 ucontrol->value.integer.value[i++];
21494 app_type_cfg[j].bit_width =
21495 ucontrol->value.integer.value[i++];
21496 }
21497
21498 return 0;
21499}
21500
21501static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21502 struct snd_ctl_elem_value *ucontrol)
21503{
21504 int j, fe_id, be_id, port_type;
21505 int ret = 0;
21506 unsigned long copp;
21507 struct msm_pcm_routing_bdai_data *bedai;
21508 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21509 SESSION_TYPE_RX;
21510 int app_type = ucontrol->value.integer.value[1];
21511 int gain = (ucontrol->value.integer.value[2] +
21512 ucontrol->value.integer.value[3])/2;
21513
21514 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21515 MSM_AFE_PORT_TYPE_TX;
21516
21517 mutex_lock(&routing_lock);
21518 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21519 if (is_be_dai_extproc(be_id))
21520 continue;
21521
21522 bedai = &msm_bedais[be_id];
21523 if (afe_get_port_type(bedai->port_id) != port_type)
21524 continue;
21525
21526 if (!bedai->active)
21527 continue;
21528
21529 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21530 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21531 continue;
21532
21533 if (app_type !=
21534 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21535 continue;
21536
21537 copp = session_copp_map[fe_id][dir][be_id];
21538 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21539 if (!test_bit(j, &copp))
21540 continue;
21541 ret |= adm_set_volume(bedai->port_id, j, gain);
21542 }
21543 }
21544 }
21545 mutex_unlock(&routing_lock);
21546 return ret ? -EINVAL : 0;
21547}
21548
21549static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21550 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021551 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021552 msm_routing_put_app_type_cfg_control),
21553 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21554 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21555};
21556
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021557static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21558 struct snd_ctl_elem_value *ucontrol)
21559{
21560 int copp_idx, fe_id, be_id, port_type;
21561 int ret = 0;
21562 unsigned long copp;
21563 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021564 u8 *packed_params = NULL;
21565 struct param_hdr_v3 param_hdr;
21566 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21567 sizeof(uint32_t));
21568
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021569 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21570 SESSION_TYPE_RX;
21571 int app_type = ucontrol->value.integer.value[1];
21572 int module_id = ucontrol->value.integer.value[2];
21573 int instance_id = ucontrol->value.integer.value[3];
21574 int param_id = ucontrol->value.integer.value[4];
21575 int param_value = ucontrol->value.integer.value[5];
21576
21577 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21578 MSM_AFE_PORT_TYPE_TX;
21579 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21580 __func__, app_type, module_id,
21581 instance_id, param_id, param_value);
21582
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021583 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21584 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021585 return -ENOMEM;
21586
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021587 memset(&param_hdr, 0, sizeof(param_hdr));
21588 param_hdr.module_id = module_id;
21589 param_hdr.instance_id = instance_id;
21590 param_hdr.param_id = param_id;
21591 param_hdr.param_size = sizeof(uint32_t);
21592
21593 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021594
21595 mutex_lock(&routing_lock);
21596 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21597 if (is_be_dai_extproc(be_id))
21598 continue;
21599
21600 bedai = &msm_bedais[be_id];
21601 if (afe_get_port_type(bedai->port_id) != port_type)
21602 continue;
21603
21604 if (!bedai->active)
21605 continue;
21606
21607 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21608 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21609 continue;
21610
21611 if (app_type !=
21612 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21613 continue;
21614
21615 copp = session_copp_map[fe_id][dir][be_id];
21616 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21617 copp_idx++) {
21618 if (!test_bit(copp_idx, &copp))
21619 continue;
21620
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021621 ret = q6common_pack_pp_params(packed_params,
21622 &param_hdr,
21623 (u8 *) &param_value,
21624 &packed_param_size);
21625 if (ret) {
21626 pr_err("%s: Failed to pack params, error %d\n",
21627 __func__, ret);
21628 goto done;
21629 }
21630
21631 ret = adm_set_pp_params(bedai->port_id,
21632 copp_idx, NULL,
21633 packed_params,
21634 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021635 if (ret) {
21636 pr_err("%s: Setting param failed with err=%d\n",
21637 __func__, ret);
21638 ret = -EINVAL;
21639 goto done;
21640 }
21641 }
21642 }
21643 }
21644done:
21645 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021646 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021647 return ret;
21648}
21649
21650static const struct snd_kcontrol_new module_cfg_controls[] = {
21651 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21652 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21653};
21654
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021655static int msm_routing_get_lsm_app_type_cfg_control(
21656 struct snd_kcontrol *kcontrol,
21657 struct snd_ctl_elem_value *ucontrol)
21658{
Meng Wangadbca4f2018-10-29 14:30:13 +080021659 int shift = ((struct soc_multi_mixer_control *)
21660 kcontrol->private_value)->shift;
21661 int i = 0, j = 0;
21662
21663 ucontrol->value.integer.value[i] = num_app_cfg_types;
21664
21665 for (j = 0; j < num_app_cfg_types; ++j) {
21666 ucontrol->value.integer.value[++i] =
21667 lsm_app_type_cfg[j].app_type;
21668 ucontrol->value.integer.value[++i] =
21669 lsm_app_type_cfg[j].sample_rate;
21670 ucontrol->value.integer.value[++i] =
21671 lsm_app_type_cfg[j].bit_width;
21672 if (shift == 1)
21673 ucontrol->value.integer.value[++i] =
21674 lsm_app_type_cfg[j].num_out_channels;
21675 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021676 return 0;
21677}
21678
21679static int msm_routing_put_lsm_app_type_cfg_control(
21680 struct snd_kcontrol *kcontrol,
21681 struct snd_ctl_elem_value *ucontrol)
21682{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021683 int shift = ((struct soc_multi_mixer_control *)
21684 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021685 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021686
Meng Wangadbca4f2018-10-29 14:30:13 +080021687 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021688 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021689 sizeof(struct msm_pcm_routing_app_type_data));
21690
Meng Wangadbca4f2018-10-29 14:30:13 +080021691 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021692 pr_err("%s: number of app types exceed the max supported\n",
21693 __func__);
21694 return -EINVAL;
21695 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021696
Meng Wangadbca4f2018-10-29 14:30:13 +080021697 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021698 lsm_app_type_cfg[j].app_type =
21699 ucontrol->value.integer.value[i++];
21700 lsm_app_type_cfg[j].sample_rate =
21701 ucontrol->value.integer.value[i++];
21702 lsm_app_type_cfg[j].bit_width =
21703 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021704 /* Shift of 1 indicates this is V2 mixer control */
21705 if (shift == 1)
21706 lsm_app_type_cfg[j].num_out_channels =
21707 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021708 }
21709
21710 return 0;
21711}
21712
21713static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21714 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21715 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21716 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021717 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21718 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21719 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021720};
21721
21722static int msm_routing_get_use_ds1_or_ds2_control(
21723 struct snd_kcontrol *kcontrol,
21724 struct snd_ctl_elem_value *ucontrol)
21725{
21726 ucontrol->value.integer.value[0] = is_ds2_on;
21727 return 0;
21728}
21729
21730static int msm_routing_put_use_ds1_or_ds2_control(
21731 struct snd_kcontrol *kcontrol,
21732 struct snd_ctl_elem_value *ucontrol)
21733{
21734 is_ds2_on = ucontrol->value.integer.value[0];
21735 return 0;
21736}
21737
21738static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
21739 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
21740 1, 0, msm_routing_get_use_ds1_or_ds2_control,
21741 msm_routing_put_use_ds1_or_ds2_control),
21742};
21743
21744int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
21745 struct snd_ctl_elem_value *ucontrol) {
21746 int rc = 0;
21747 int be_idx = 0;
21748 char *param_value;
21749 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021750 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
21751 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021752
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021753 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021754 if (!param_value)
21755 return -ENOMEM;
21756
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021757 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021758 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
21759 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
21760 break;
21761 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021762 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
21763 param_hdr.instance_id = INSTANCE_ID_0;
21764 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
21765 param_hdr.param_size = param_size;
21766 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
21767 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021768 if (rc) {
21769 pr_err("%s: get parameters failed:%d\n", __func__, rc);
21770 kfree(param_value);
21771 return -EINVAL;
21772 }
21773 update_param_value = (int *)param_value;
21774 ucontrol->value.integer.value[0] = update_param_value[0];
21775
21776 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21777 __func__, update_param_value[0]);
21778 }
21779 kfree(param_value);
21780 return 0;
21781}
21782
21783static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21784 struct snd_ctl_elem_value *ucontrol)
21785{
21786 voc_session_id = ucontrol->value.integer.value[0];
21787
21788 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21789
21790 return 0;
21791}
21792
21793static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21794 struct snd_ctl_elem_value *ucontrol)
21795{
21796 ucontrol->value.integer.value[0] = voc_session_id;
21797
21798 return 0;
21799}
21800
21801static struct snd_kcontrol_new msm_voc_session_controls[] = {
21802 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21803 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21804 msm_voc_session_id_put),
21805};
21806
21807static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21808 struct snd_ctl_elem_info *uinfo)
21809{
21810 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21811 uinfo->count = sizeof(struct sound_focus_param);
21812
21813 return 0;
21814}
21815
21816static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21817 struct snd_ctl_elem_value *ucontrol)
21818{
21819 int ret = 0;
21820 struct sound_focus_param soundFocusData;
21821
21822 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21823 sizeof(struct sound_focus_param));
21824 ret = voc_set_sound_focus(soundFocusData);
21825 if (ret) {
21826 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21827 __func__, ret);
21828
21829 ret = -EINVAL;
21830 }
21831
21832 return ret;
21833}
21834
21835static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21836 struct snd_ctl_elem_value *ucontrol)
21837{
21838 int ret = 0;
21839 struct sound_focus_param soundFocusData;
21840
21841 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21842
21843 ret = voc_get_sound_focus(&soundFocusData);
21844 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021845 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021846 __func__, ret);
21847
21848 ret = -EINVAL;
21849 goto done;
21850 }
21851 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21852 sizeof(struct sound_focus_param));
21853
21854done:
21855 return ret;
21856}
21857
21858static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21859 struct snd_ctl_elem_info *uinfo)
21860{
21861 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21862 uinfo->count = sizeof(struct source_tracking_param);
21863
21864 return 0;
21865}
21866
21867static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21868 struct snd_ctl_elem_value *ucontrol)
21869{
Meng Wang92edfde2018-04-24 12:18:37 +080021870 int ret = 0;
21871 struct source_tracking_param sourceTrackingData;
21872
21873 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21874
21875 ret = voc_get_source_tracking(&sourceTrackingData);
21876 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021877 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021878 __func__, ret);
21879
21880 ret = -EINVAL;
21881 goto done;
21882 }
21883 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21884 sizeof(struct source_tracking_param));
21885
21886done:
21887 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021888}
21889
21890static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21891 int *copp_idx)
21892{
21893 int i, idx, be_idx;
21894 int ret = 0;
21895 unsigned long copp;
21896
21897 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21898
21899 ret = q6audio_validate_port(port_id);
21900 if (ret < 0) {
21901 pr_err("%s: port validation failed id 0x%x ret %d\n",
21902 __func__, port_id, ret);
21903
21904 ret = -EINVAL;
21905 goto done;
21906 }
21907
21908 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21909 if (msm_bedais[be_idx].port_id == port_id)
21910 break;
21911 }
21912 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21913 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21914
21915 ret = -EINVAL;
21916 goto done;
21917 }
21918
21919 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021920 MSM_FRONTEND_DAI_MAX) {
21921 if (!(is_mm_lsm_fe_id(i) &&
21922 route_check_fe_id_adm_support(i)))
21923 continue;
21924
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021925 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21926 copp = session_copp_map[i]
21927 [session_type][be_idx];
21928 if (test_bit(idx, &copp))
21929 break;
21930 }
21931 if (idx >= MAX_COPPS_PER_PORT)
21932 continue;
21933 else
21934 break;
21935 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021936 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021937 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021938
21939 ret = -EINVAL;
21940 goto done;
21941 }
21942 *copp_idx = idx;
21943 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
21944
21945done:
21946 return ret;
21947}
21948
21949static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
21950 const char *prefix, int *port_id)
21951{
21952 int ret = 0;
21953
21954 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
21955
21956 /*
21957 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
21958 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
21959 * and compare the string with the backend name to derive the port id.
21960 */
21961 if (!strcmp(kcontrol->id.name + strlen(prefix),
21962 "SLIMBUS_0")) {
21963 *port_id = SLIMBUS_0_TX;
21964 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21965 "TERT_MI2S")) {
21966 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
21967 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21968 "INT3_MI2S")) {
21969 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021970 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21971 "VA_CDC_DMA_TX_0")) {
21972 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021973 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21974 "TX_CDC_DMA_TX_3")) {
21975 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021976 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21977 "QUIN_TDM_TX_0")) {
21978 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053021979 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21980 "PRIMARY_TDM")) {
21981 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021982 } else {
21983 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
21984 __func__, kcontrol->id.name);
21985
21986 ret = -EINVAL;
21987 goto done;
21988 }
21989 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
21990 __func__, kcontrol->id.name, *port_id);
21991
21992done:
21993 return ret;
21994}
21995
21996static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
21997 struct snd_ctl_elem_value *ucontrol)
21998{
21999 int ret = 0;
22000 struct sound_focus_param soundFocusData;
22001 int port_id, copp_idx;
22002
22003 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22004 "Sound Focus Audio Tx ", &port_id);
22005 if (ret != 0) {
22006 pr_err("%s: Error in deriving port id, err=%d\n",
22007 __func__, ret);
22008
22009 ret = -EINVAL;
22010 goto done;
22011 }
22012
22013 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22014 &copp_idx);
22015 if (ret) {
22016 pr_err("%s: Could not get copp idx for port_id=%d\n",
22017 __func__, port_id);
22018
22019 ret = -EINVAL;
22020 goto done;
22021 }
22022
22023 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22024 sizeof(struct sound_focus_param));
22025
22026 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22027 if (ret) {
22028 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22029 __func__, ret);
22030
22031 ret = -EINVAL;
22032 goto done;
22033 }
22034
22035done:
22036 return ret;
22037}
22038
22039static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22040 struct snd_ctl_elem_value *ucontrol)
22041{
22042 int ret = 0;
22043 struct sound_focus_param soundFocusData;
22044 int port_id, copp_idx;
22045
22046 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22047 "Sound Focus Audio Tx ", &port_id);
22048 if (ret) {
22049 pr_err("%s: Error in deriving port id, err=%d\n",
22050 __func__, ret);
22051
22052 ret = -EINVAL;
22053 goto done;
22054 }
22055
22056 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22057 &copp_idx);
22058 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022059 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022060 __func__, port_id);
22061
22062 ret = -EINVAL;
22063 goto done;
22064 }
22065
22066 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22067 if (ret) {
22068 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22069 __func__, ret);
22070
22071 ret = -EINVAL;
22072 goto done;
22073 }
22074
22075 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22076 sizeof(struct sound_focus_param));
22077
22078done:
22079 return ret;
22080}
22081
22082static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22083 struct snd_ctl_elem_value *ucontrol)
22084{
22085 int ret = 0;
22086 struct source_tracking_param sourceTrackingData;
22087 int port_id, copp_idx;
22088
22089 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22090 "Source Tracking Audio Tx ", &port_id);
22091 if (ret) {
22092 pr_err("%s: Error in deriving port id, err=%d\n",
22093 __func__, ret);
22094
22095 ret = -EINVAL;
22096 goto done;
22097 }
22098
22099 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22100 &copp_idx);
22101 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022102 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022103 __func__, port_id);
22104
22105 ret = -EINVAL;
22106 goto done;
22107 }
22108
22109 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22110 if (ret) {
22111 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22112 __func__, ret);
22113
22114 ret = -EINVAL;
22115 goto done;
22116 }
22117
22118 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22119 sizeof(struct source_tracking_param));
22120
22121done:
22122 return ret;
22123}
22124
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022125static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22126 struct snd_ctl_elem_info *uinfo)
22127{
22128 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22129 uinfo->count = sizeof(struct doa_tracking_mon_param);
22130
22131 return 0;
22132}
22133
22134static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22135 struct snd_ctl_elem_value *ucontrol)
22136{
22137 int ret = 0;
22138 struct doa_tracking_mon_param doa_tracking_data;
22139 int port_id, copp_idx;
22140
22141 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22142 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22143 "Doa Tracking Monitor Listen ", &port_id);
22144 if (ret) {
22145 pr_err("%s: Error in deriving port id, err=%d\n",
22146 __func__, ret);
22147 ret = -EINVAL;
22148 goto done;
22149 }
22150
22151 /*
22152 * If copp id exists for given port id, query adm to get doa data.
22153 * Else query afe for doa tracking params.
22154 * This is to support in cases where LSM directly connects to
22155 * AFE for FFNS.
22156 */
22157 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22158 &copp_idx);
22159 if (!ret)
22160 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22161 &doa_tracking_data);
22162 else
22163 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22164
22165 if (ret) {
22166 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22167 __func__, ret);
22168 ret = -EINVAL;
22169 goto done;
22170 }
22171
22172 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22173 sizeof(struct doa_tracking_mon_param));
22174done:
22175 return ret;
22176}
22177
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022178static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22179 {
22180 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22181 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22182 .name = "Sound Focus Voice Tx SLIMBUS_0",
22183 .info = msm_sound_focus_info,
22184 .get = msm_voice_sound_focus_get,
22185 .put = msm_voice_sound_focus_put,
22186 },
22187 {
22188 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22189 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22190 .name = "Source Tracking Voice Tx SLIMBUS_0",
22191 .info = msm_source_tracking_info,
22192 .get = msm_voice_source_tracking_get,
22193 },
22194 {
22195 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22196 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22197 .name = "Sound Focus Audio Tx SLIMBUS_0",
22198 .info = msm_sound_focus_info,
22199 .get = msm_audio_sound_focus_get,
22200 .put = msm_audio_sound_focus_put,
22201 },
22202 {
22203 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22204 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22205 .name = "Source Tracking Audio Tx SLIMBUS_0",
22206 .info = msm_source_tracking_info,
22207 .get = msm_audio_source_tracking_get,
22208 },
22209 {
22210 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22211 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22212 .name = "Sound Focus Voice Tx TERT_MI2S",
22213 .info = msm_sound_focus_info,
22214 .get = msm_voice_sound_focus_get,
22215 .put = msm_voice_sound_focus_put,
22216 },
22217 {
22218 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22219 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22220 .name = "Source Tracking Voice Tx TERT_MI2S",
22221 .info = msm_source_tracking_info,
22222 .get = msm_voice_source_tracking_get,
22223 },
22224 {
22225 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22226 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22227 .name = "Sound Focus Audio Tx TERT_MI2S",
22228 .info = msm_sound_focus_info,
22229 .get = msm_audio_sound_focus_get,
22230 .put = msm_audio_sound_focus_put,
22231 },
22232 {
22233 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22234 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22235 .name = "Source Tracking Audio Tx TERT_MI2S",
22236 .info = msm_source_tracking_info,
22237 .get = msm_audio_source_tracking_get,
22238 },
22239 {
22240 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22241 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22242 .name = "Sound Focus Voice Tx INT3_MI2S",
22243 .info = msm_sound_focus_info,
22244 .get = msm_voice_sound_focus_get,
22245 .put = msm_voice_sound_focus_put,
22246 },
22247 {
22248 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22249 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22250 .name = "Source Tracking Voice Tx INT3_MI2S",
22251 .info = msm_source_tracking_info,
22252 .get = msm_voice_source_tracking_get,
22253 },
22254 {
22255 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22256 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22257 .name = "Sound Focus Audio Tx INT3_MI2S",
22258 .info = msm_sound_focus_info,
22259 .get = msm_audio_sound_focus_get,
22260 .put = msm_audio_sound_focus_put,
22261 },
22262 {
22263 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22264 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22265 .name = "Source Tracking Audio Tx INT3_MI2S",
22266 .info = msm_source_tracking_info,
22267 .get = msm_audio_source_tracking_get,
22268 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022269 {
22270 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22271 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22272 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22273 .info = msm_sound_focus_info,
22274 .get = msm_voice_sound_focus_get,
22275 .put = msm_voice_sound_focus_put,
22276 },
22277 {
22278 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22279 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22280 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22281 .info = msm_source_tracking_info,
22282 .get = msm_voice_source_tracking_get,
22283 },
22284 {
22285 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22286 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22287 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22288 .info = msm_sound_focus_info,
22289 .get = msm_audio_sound_focus_get,
22290 .put = msm_audio_sound_focus_put,
22291 },
22292 {
22293 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22294 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22295 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22296 .info = msm_source_tracking_info,
22297 .get = msm_audio_source_tracking_get,
22298 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022299 {
22300 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22301 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22302 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22303 .info = msm_sound_focus_info,
22304 .get = msm_voice_sound_focus_get,
22305 .put = msm_voice_sound_focus_put,
22306 },
22307 {
22308 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22309 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22310 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22311 .info = msm_source_tracking_info,
22312 .get = msm_voice_source_tracking_get,
22313 },
22314 {
22315 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22316 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22317 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22318 .info = msm_sound_focus_info,
22319 .get = msm_audio_sound_focus_get,
22320 .put = msm_audio_sound_focus_put,
22321 },
22322 {
22323 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22325 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22326 .info = msm_source_tracking_info,
22327 .get = msm_audio_source_tracking_get,
22328 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022329 {
22330 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22331 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22332 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22333 .info = msm_sound_focus_info,
22334 .get = msm_voice_sound_focus_get,
22335 .put = msm_voice_sound_focus_put,
22336 },
22337 {
22338 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22340 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22341 .info = msm_source_tracking_info,
22342 .get = msm_voice_source_tracking_get,
22343 },
22344 {
22345 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22346 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22347 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22348 .info = msm_sound_focus_info,
22349 .get = msm_audio_sound_focus_get,
22350 .put = msm_audio_sound_focus_put,
22351 },
22352 {
22353 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22355 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22356 .info = msm_source_tracking_info,
22357 .get = msm_audio_source_tracking_get,
22358 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022359 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022360 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22362 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22363 .info = msm_sound_focus_info,
22364 .get = msm_audio_sound_focus_get,
22365 .put = msm_audio_sound_focus_put,
22366 },
22367 {
22368 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22370 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22371 .info = msm_source_tracking_info,
22372 .get = msm_audio_source_tracking_get,
22373 },
22374 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022375 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22377 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22378 .info = msm_doa_tracking_mon_info,
22379 .get = msm_doa_tracking_mon_get,
22380 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022381};
22382
22383static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22384 struct snd_ctl_elem_value *ucontrol)
22385{
22386 int ret = 0;
22387 int item;
22388 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22389
22390 pr_debug("%s item is %d\n", __func__,
22391 ucontrol->value.enumerated.item[0]);
22392 mutex_lock(&routing_lock);
22393 item = ucontrol->value.enumerated.item[0];
22394 if (item < e->items) {
22395 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22396 __func__, e->shift_l, e->values[item]);
22397 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22398 e->values[item] < MSM_BACKEND_DAI_MAX)
22399 /* Enable feedback TX path */
22400 ret = afe_spk_prot_feed_back_cfg(
22401 msm_bedais[e->values[item]].port_id,
22402 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22403 else {
22404 pr_debug("%s values are out of range item %d\n",
22405 __func__, e->values[item]);
22406 /* Disable feedback TX path */
22407 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22408 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22409 else
22410 ret = -EINVAL;
22411 }
22412 } else {
22413 pr_err("%s item value is out of range item\n", __func__);
22414 ret = -EINVAL;
22415 }
22416 mutex_unlock(&routing_lock);
22417 return ret;
22418}
22419
22420static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22421 struct snd_ctl_elem_value *ucontrol)
22422{
22423 int ret = 0;
22424 int item;
22425 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22426
22427 pr_debug("%s item is %d\n", __func__,
22428 ucontrol->value.enumerated.item[0]);
22429 mutex_lock(&routing_lock);
22430 item = ucontrol->value.enumerated.item[0];
22431 if (item < e->items) {
22432 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22433 __func__, e->shift_l, e->values[item]);
22434 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22435 e->values[item] < MSM_BACKEND_DAI_MAX)
22436 /* Enable feedback TX path */
22437 ret = afe_spk_prot_feed_back_cfg(
22438 msm_bedais[e->values[item]].port_id,
22439 msm_bedais[e->shift_l].port_id,
22440 1, 1, 1);
22441 else {
22442 pr_debug("%s values are out of range item %d\n",
22443 __func__, e->values[item]);
22444 /* Disable feedback TX path */
22445 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22446 ret = afe_spk_prot_feed_back_cfg(0,
22447 0, 0, 0, 0);
22448 else
22449 ret = -EINVAL;
22450 }
22451 } else {
22452 pr_err("%s item value is out of range item\n", __func__);
22453 ret = -EINVAL;
22454 }
22455 mutex_unlock(&routing_lock);
22456 return ret;
22457}
22458
22459static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22460 struct snd_ctl_elem_value *ucontrol)
22461{
22462 pr_debug("%s\n", __func__);
22463 return 0;
22464}
22465
22466static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22467 struct snd_ctl_elem_value *ucontrol)
22468{
22469 pr_debug("%s\n", __func__);
22470 ucontrol->value.enumerated.item[0] = 0;
22471 return 0;
22472}
22473
22474static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22475 "ZERO", "SLIM4_TX"
22476};
22477
22478static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22479 "ZERO", "SLIM4_TX"
22480};
22481
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022482static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22483 "ZERO", "WSA_CDC_DMA_TX_0"
22484};
22485
22486static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22487 "ZERO", "WSA_CDC_DMA_TX_0"
22488};
22489
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022490static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22491 "ZERO", "SENARY_TX"
22492};
22493
22494static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22495 "ZERO", "INT5_MI2S_TX"
22496};
22497
22498static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22499 "ZERO", "INT5_MI2S_TX"
22500};
22501
Josh Kirschea69fed2018-12-11 16:15:08 -080022502static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022503 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22504};
22505
Josh Kirschea69fed2018-12-11 16:15:08 -080022506static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022507 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22508};
22509
Josh Kirschea69fed2018-12-11 16:15:08 -080022510static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022511 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22512};
22513
Josh Kirschea69fed2018-12-11 16:15:08 -080022514static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022515 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22516};
22517
22518
Josh Kirschea69fed2018-12-11 16:15:08 -080022519static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022520 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22521};
22522
Josh Kirschea69fed2018-12-11 16:15:08 -080022523static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022524 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22525};
22526
Josh Kirschea69fed2018-12-11 16:15:08 -080022527static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022528 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22529};
22530
22531static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22532 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22533 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22534 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22535
22536static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22537 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22538 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22539 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22540
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022541static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22542 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22543 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22544 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22545
22546static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22547 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22548 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22549 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22550
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022551static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22552 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22553 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22554 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22555
22556static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22557 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22558 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22559 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22560 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22561
22562static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22563 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22564 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22565 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22566 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22567
22568static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22569 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22570 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22571 spkr_prot_put_vi_lch_port);
22572
22573static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22574 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22575 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22576 spkr_prot_put_vi_rch_port);
22577
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022578static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22579 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22580 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22581 spkr_prot_put_vi_lch_port);
22582
22583static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22584 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22585 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22586 spkr_prot_put_vi_rch_port);
22587
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022588static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22589 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22590 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22591 spkr_prot_put_vi_lch_port);
22592
22593static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22594 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22595 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22596 spkr_prot_put_vi_lch_port);
22597
22598static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22599 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22600 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22601 spkr_prot_put_vi_rch_port);
22602
22603static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22604 /* Frontend AIF */
22605 /* Widget name equals to Front-End DAI name<Need confirmation>,
22606 * Stream name must contains substring of front-end dai name
22607 */
22608 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22609 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22610 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22611 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22612 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22613 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22614 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22615 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22616 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22617 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22618 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22619 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22620 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22621 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22622 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22623 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22624 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022625 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022626 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022627 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022628 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22629 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22630 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22631 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22632 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22633 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22634 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22635 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22636 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022637 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022638 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022639 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22640 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22641 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22642 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022643 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022644 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022645 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022646 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22647 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022648 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022649 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22650 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22651 "VoiceMMode1 Playback", 0, 0, 0, 0),
22652 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22653 "VoiceMMode1 Capture", 0, 0, 0, 0),
22654 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22655 "VoiceMMode2 Playback", 0, 0, 0, 0),
22656 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22657 "VoiceMMode2 Capture", 0, 0, 0, 0),
22658 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22659 0, 0, 0, 0),
22660 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22661 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022662 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22663 0, 0, 0, 0),
22664 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22665 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022666 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22667 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022668 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22669 0, 0, 0, 0),
22670 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22671 0, 0, 0, 0),
22672 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22673 0, 0, 0, 0),
22674 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22675 0, 0, 0, 0),
22676 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22677 0, 0, 0, 0),
22678 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22679 0, 0, 0, 0),
22680 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22681 0, 0, 0, 0),
22682 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22683 0, 0, 0, 0),
22684 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22685 0, 0, 0, 0),
22686 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22687 0, 0, 0, 0),
22688 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22689 0, 0, 0, 0),
22690 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22691 0, 0, 0, 0),
22692 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22693 0, 0, 0, 0),
22694 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22695 0, 0, 0, 0),
22696 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22697 0, 0, 0, 0),
22698 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22699 0, 0, 0, 0),
22700 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22701 0, 0, 0, 0),
22702 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22703 0, 0, 0, 0),
22704 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
22705 0, 0, 0, 0),
22706 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
22707 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
22708 0, 0, 0, 0),
22709 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
22710 "INT0 MI2S_RX Hostless Playback",
22711 0, 0, 0, 0),
22712 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
22713 "INT4 MI2S_RX Hostless Playback",
22714 0, 0, 0, 0),
22715 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
22716 "Primary MI2S_RX Hostless Playback",
22717 0, 0, 0, 0),
22718 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
22719 "Secondary MI2S_RX Hostless Playback",
22720 0, 0, 0, 0),
22721 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
22722 "Tertiary MI2S_RX Hostless Playback",
22723 0, 0, 0, 0),
22724 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
22725 "Quaternary MI2S_RX Hostless Playback",
22726 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022727 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
22728 "Quinary MI2S_RX Hostless Playback",
22729 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022730 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
22731 "Senary MI2S_RX Hostless Playback",
22732 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022733
22734 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
22735 0, 0, 0, 0),
22736 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
22737 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022738 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
22739 0, 0, 0, 0),
22740 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
22741 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022742 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
22743 0, 0, 0, 0),
22744 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
22745 "INT3 MI2S_TX Hostless Capture",
22746 0, 0, 0, 0),
22747 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
22748 "Tertiary MI2S_TX Hostless Capture",
22749 0, 0, 0, 0),
22750 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
22751 "Secondary MI2S_TX Hostless Capture",
22752 0, 0, 0, 0),
22753 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
22754 "Primary MI2S_TX Hostless Capture",
22755 0, 0, 0, 0),
22756 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
22757 0, 0, 0, 0),
22758 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
22759 0, 0, 0, 0),
22760 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
22761 "Quaternary MI2S_TX Hostless Capture",
22762 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022763 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
22764 "Quinary MI2S_TX Hostless Capture",
22765 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022766 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
22767 "Senary MI2S_TX Hostless Capture",
22768 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022769
22770 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
22771 "Primary TDM0 Hostless Playback",
22772 0, 0, 0, 0),
22773 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
22774 "Primary TDM0 Hostless Capture",
22775 0, 0, 0, 0),
22776 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
22777 "Primary TDM1 Hostless Playback",
22778 0, 0, 0, 0),
22779 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22780 "Primary TDM1 Hostless Capture",
22781 0, 0, 0, 0),
22782 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22783 "Primary TDM2 Hostless Playback",
22784 0, 0, 0, 0),
22785 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22786 "Primary TDM2 Hostless Capture",
22787 0, 0, 0, 0),
22788 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22789 "Primary TDM3 Hostless Playback",
22790 0, 0, 0, 0),
22791 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22792 "Primary TDM3 Hostless Capture",
22793 0, 0, 0, 0),
22794 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22795 "Primary TDM4 Hostless Playback",
22796 0, 0, 0, 0),
22797 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22798 "Primary TDM4 Hostless Capture",
22799 0, 0, 0, 0),
22800 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22801 "Primary TDM5 Hostless Playback",
22802 0, 0, 0, 0),
22803 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22804 "Primary TDM5 Hostless Capture",
22805 0, 0, 0, 0),
22806 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22807 "Primary TDM6 Hostless Playback",
22808 0, 0, 0, 0),
22809 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22810 "Primary TDM6 Hostless Capture",
22811 0, 0, 0, 0),
22812 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22813 "Primary TDM7 Hostless Playback",
22814 0, 0, 0, 0),
22815 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22816 "Primary TDM7 Hostless Capture",
22817 0, 0, 0, 0),
22818 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22819 "Secondary TDM0 Hostless Playback",
22820 0, 0, 0, 0),
22821 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22822 "Secondary TDM0 Hostless Capture",
22823 0, 0, 0, 0),
22824 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22825 "Secondary TDM1 Hostless Playback",
22826 0, 0, 0, 0),
22827 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22828 "Secondary TDM1 Hostless Capture",
22829 0, 0, 0, 0),
22830 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22831 "Secondary TDM2 Hostless Playback",
22832 0, 0, 0, 0),
22833 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22834 "Secondary TDM2 Hostless Capture",
22835 0, 0, 0, 0),
22836 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22837 "Secondary TDM3 Hostless Playback",
22838 0, 0, 0, 0),
22839 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22840 "Secondary TDM3 Hostless Capture",
22841 0, 0, 0, 0),
22842 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22843 "Secondary TDM4 Hostless Playback",
22844 0, 0, 0, 0),
22845 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22846 "Secondary TDM4 Hostless Capture",
22847 0, 0, 0, 0),
22848 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22849 "Secondary TDM5 Hostless Playback",
22850 0, 0, 0, 0),
22851 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22852 "Secondary TDM5 Hostless Capture",
22853 0, 0, 0, 0),
22854 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22855 "Secondary TDM6 Hostless Playback",
22856 0, 0, 0, 0),
22857 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22858 "Secondary TDM6 Hostless Capture",
22859 0, 0, 0, 0),
22860 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22861 "Secondary TDM7 Hostless Playback",
22862 0, 0, 0, 0),
22863 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22864 "Secondary TDM7 Hostless Capture",
22865 0, 0, 0, 0),
22866 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22867 "Tertiary TDM0 Hostless Playback",
22868 0, 0, 0, 0),
22869 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22870 "Tertiary TDM0 Hostless Capture",
22871 0, 0, 0, 0),
22872 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22873 "Tertiary TDM1 Hostless Playback",
22874 0, 0, 0, 0),
22875 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22876 "Tertiary TDM1 Hostless Capture",
22877 0, 0, 0, 0),
22878 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22879 "Tertiary TDM2 Hostless Playback",
22880 0, 0, 0, 0),
22881 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22882 "Tertiary TDM2 Hostless Capture",
22883 0, 0, 0, 0),
22884 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22885 "Tertiary TDM3 Hostless Playback",
22886 0, 0, 0, 0),
22887 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22888 "Tertiary TDM3 Hostless Capture",
22889 0, 0, 0, 0),
22890 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22891 "Tertiary TDM4 Hostless Playback",
22892 0, 0, 0, 0),
22893 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22894 "Tertiary TDM4 Hostless Capture",
22895 0, 0, 0, 0),
22896 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22897 "Tertiary TDM5 Hostless Playback",
22898 0, 0, 0, 0),
22899 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22900 "Tertiary TDM5 Hostless Capture",
22901 0, 0, 0, 0),
22902 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22903 "Tertiary TDM6 Hostless Playback",
22904 0, 0, 0, 0),
22905 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22906 "Tertiary TDM6 Hostless Capture",
22907 0, 0, 0, 0),
22908 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22909 "Tertiary TDM7 Hostless Playback",
22910 0, 0, 0, 0),
22911 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22912 "Tertiary TDM7 Hostless Capture",
22913 0, 0, 0, 0),
22914 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22915 "Quaternary TDM0 Hostless Playback",
22916 0, 0, 0, 0),
22917 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22918 "Quaternary TDM0 Hostless Capture",
22919 0, 0, 0, 0),
22920 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22921 "Quaternary TDM1 Hostless Playback",
22922 0, 0, 0, 0),
22923 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22924 "Quaternary TDM1 Hostless Capture",
22925 0, 0, 0, 0),
22926 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22927 "Quaternary TDM2 Hostless Playback",
22928 0, 0, 0, 0),
22929 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22930 "Quaternary TDM2 Hostless Capture",
22931 0, 0, 0, 0),
22932 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22933 "Quaternary TDM3 Hostless Playback",
22934 0, 0, 0, 0),
22935 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22936 "Quaternary TDM3 Hostless Capture",
22937 0, 0, 0, 0),
22938 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22939 "Quaternary TDM4 Hostless Playback",
22940 0, 0, 0, 0),
22941 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22942 "Quaternary TDM4 Hostless Capture",
22943 0, 0, 0, 0),
22944 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
22945 "Quaternary TDM5 Hostless Playback",
22946 0, 0, 0, 0),
22947 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
22948 "Quaternary TDM5 Hostless Capture",
22949 0, 0, 0, 0),
22950 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
22951 "Quaternary TDM6 Hostless Playback",
22952 0, 0, 0, 0),
22953 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
22954 "Quaternary TDM6 Hostless Capture",
22955 0, 0, 0, 0),
22956 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
22957 "Quaternary TDM7 Hostless Playback",
22958 0, 0, 0, 0),
22959 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
22960 "Quaternary TDM7 Hostless Capture",
22961 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022962 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
22963 "Quinary TDM0 Hostless Playback",
22964 0, 0, 0, 0),
22965 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
22966 "Quinary TDM0 Hostless Capture",
22967 0, 0, 0, 0),
22968 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
22969 "Quinary TDM1 Hostless Playback",
22970 0, 0, 0, 0),
22971 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
22972 "Quinary TDM1 Hostless Capture",
22973 0, 0, 0, 0),
22974 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
22975 "Quinary TDM2 Hostless Playback",
22976 0, 0, 0, 0),
22977 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
22978 "Quinary TDM2 Hostless Capture",
22979 0, 0, 0, 0),
22980 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
22981 "Quinary TDM3 Hostless Playback",
22982 0, 0, 0, 0),
22983 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
22984 "Quinary TDM3 Hostless Capture",
22985 0, 0, 0, 0),
22986 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
22987 "Quinary TDM4 Hostless Playback",
22988 0, 0, 0, 0),
22989 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
22990 "Quinary TDM4 Hostless Capture",
22991 0, 0, 0, 0),
22992 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
22993 "Quinary TDM5 Hostless Playback",
22994 0, 0, 0, 0),
22995 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
22996 "Quinary TDM5 Hostless Capture",
22997 0, 0, 0, 0),
22998 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
22999 "Quinary TDM6 Hostless Playback",
23000 0, 0, 0, 0),
23001 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23002 "Quinary TDM6 Hostless Capture",
23003 0, 0, 0, 0),
23004 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23005 "Quinary TDM7 Hostless Playback",
23006 0, 0, 0, 0),
23007 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23008 "Quinary TDM7 Hostless Capture",
23009 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023010 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23011 "Senary TDM0 Hostless Playback",
23012 0, 0, 0, 0),
23013 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23014 "Senary TDM0 Hostless Capture",
23015 0, 0, 0, 0),
23016 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23017 "Senary TDM1 Hostless Playback",
23018 0, 0, 0, 0),
23019 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23020 "Senary TDM1 Hostless Capture",
23021 0, 0, 0, 0),
23022 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23023 "Senary TDM2 Hostless Playback",
23024 0, 0, 0, 0),
23025 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23026 "Senary TDM2 Hostless Capture",
23027 0, 0, 0, 0),
23028 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23029 "Senary TDM3 Hostless Playback",
23030 0, 0, 0, 0),
23031 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23032 "Senary TDM3 Hostless Capture",
23033 0, 0, 0, 0),
23034 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23035 "Senary TDM4 Hostless Playback",
23036 0, 0, 0, 0),
23037 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23038 "Senary TDM4 Hostless Capture",
23039 0, 0, 0, 0),
23040 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23041 "Senary TDM5 Hostless Playback",
23042 0, 0, 0, 0),
23043 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23044 "Senary TDM5 Hostless Capture",
23045 0, 0, 0, 0),
23046 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23047 "Senary TDM6 Hostless Playback",
23048 0, 0, 0, 0),
23049 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23050 "Senary TDM6 Hostless Capture",
23051 0, 0, 0, 0),
23052 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23053 "Senary TDM7 Hostless Playback",
23054 0, 0, 0, 0),
23055 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23056 "Senary TDM7 Hostless Capture",
23057 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023058
23059 /* LSM */
23060 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23061 0, 0, 0, 0),
23062 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23063 0, 0, 0, 0),
23064 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23065 0, 0, 0, 0),
23066 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23067 0, 0, 0, 0),
23068 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23069 0, 0, 0, 0),
23070 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23071 0, 0, 0, 0),
23072 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23073 0, 0, 0, 0),
23074 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23075 0, 0, 0, 0),
23076 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23077 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23078 /* Backend AIF */
23079 /* Stream name equals to backend dai link stream name */
23080 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23081 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23082 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023083 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23084 0, 0, 0, 0),
23085 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23088 0, 0, 0, 0),
23089 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23090 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023091 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23092 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23094 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23095 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23096 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023097 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23098 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023099 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23100 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23101 0, 0, 0, 0),
23102 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23103 0, 0, 0, 0),
23104 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23105 0, 0, 0, 0),
23106 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23107 "Secondary MI2S Playback SD1",
23108 0, 0, 0, 0),
23109 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23110 0, 0, 0, 0),
23111 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23112 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023113 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23114 0, 0, 0, 0),
23115 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23116 0, 0, 0, 0),
23117 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23118 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023119 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23120 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023121 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23122 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023123 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23124 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023125 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23126 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023127 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23128 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23129 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23130 0, 0, 0, 0),
23131 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23132 0, 0, 0, 0),
23133 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23134 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023135 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23136 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023137 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23138 0, 0, 0, 0),
23139 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23140 0, 0, 0, 0),
23141 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23142 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23144 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23145 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23146 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23148 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23150 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23152 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23154 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23156 0, 0, 0, 0),
23157 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23158 0, 0, 0, 0),
23159 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23160 0, 0, 0, 0),
23161 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23162 0, 0, 0, 0),
23163 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23164 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23166 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23168 0, 0, 0, 0),
23169 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23170 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23172 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23174 0, 0, 0, 0),
23175 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23176 0, 0, 0, 0),
23177 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23178 0, 0, 0, 0),
23179 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23180 0, 0, 0, 0),
23181 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23182 0, 0, 0, 0),
23183 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23184 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23186 0, 0, 0, 0),
23187 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23188 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23190 0, 0, 0, 0),
23191 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23192 0, 0, 0, 0),
23193 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23194 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23196 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23198 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23200 0, 0, 0, 0),
23201 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23204 0, 0, 0, 0),
23205 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23206 0, 0, 0, 0),
23207 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23208 0, 0, 0, 0),
23209 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23210 0, 0, 0, 0),
23211 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23216 0, 0, 0, 0),
23217 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23222 0, 0, 0, 0),
23223 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23228 0, 0, 0, 0),
23229 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23234 0, 0, 0, 0),
23235 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23240 0, 0, 0, 0),
23241 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23242 0, 0, 0, 0),
23243 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23244 0, 0, 0, 0),
23245 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23246 0, 0, 0, 0),
23247 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23248 0, 0, 0, 0),
23249 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23250 0, 0, 0, 0),
23251 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23252 0, 0, 0, 0),
23253 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23254 0, 0, 0, 0),
23255 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23256 0, 0, 0, 0),
23257 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23258 0, 0, 0, 0),
23259 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23260 0, 0, 0, 0),
23261 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23262 0, 0, 0, 0),
23263 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23264 0, 0, 0, 0),
23265 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23266 0, 0, 0, 0),
23267 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23268 0, 0, 0, 0),
23269 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23270 0, 0, 0, 0),
23271 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23272 0, 0, 0, 0),
23273 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23274 0, 0, 0, 0),
23275 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23276 0, 0, 0, 0),
23277 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23280 0, 0, 0, 0),
23281 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23282 0, 0, 0, 0),
23283 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23284 0, 0, 0, 0),
23285 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23286 0, 0, 0, 0),
23287 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23288 0, 0, 0, 0),
23289 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23290 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023291 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23292 0, 0, 0, 0),
23293 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23294 0, 0, 0, 0),
23295 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23296 0, 0, 0, 0),
23297 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23298 0, 0, 0, 0),
23299 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23300 0, 0, 0, 0),
23301 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23302 0, 0, 0, 0),
23303 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23304 0, 0, 0, 0),
23305 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23306 0, 0, 0, 0),
23307 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23308 0, 0, 0, 0),
23309 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23310 0, 0, 0, 0),
23311 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23312 0, 0, 0, 0),
23313 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23314 0, 0, 0, 0),
23315 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23316 0, 0, 0, 0),
23317 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23318 0, 0, 0, 0),
23319 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23320 0, 0, 0, 0),
23321 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23322 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023323 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23324 0, 0, 0, 0),
23325 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23326 0, 0, 0, 0),
23327 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23328 0, 0, 0, 0),
23329 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23330 0, 0, 0, 0),
23331 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23332 0, 0, 0, 0),
23333 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23334 0, 0, 0, 0),
23335 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23336 0, 0, 0, 0),
23337 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23338 0, 0, 0, 0),
23339 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23340 0, 0, 0, 0),
23341 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23342 0, 0, 0, 0),
23343 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23344 0, 0, 0, 0),
23345 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23346 0, 0, 0, 0),
23347 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23348 0, 0, 0, 0),
23349 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23350 0, 0, 0, 0),
23351 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23352 0, 0, 0, 0),
23353 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23354 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023355 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23356 0, 0, 0, 0),
23357 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23358 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023359 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23360 0, 0, 0, 0),
23361 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23362 0, 0, 0, 0),
23363 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23364 0, 0, 0, 0),
23365 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23366 0, 0, 0, 0),
23367 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23368 0, 0, 0, 0),
23369 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23370 0, 0, 0, 0),
23371 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23372 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023373 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23374 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023375 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23376 0, 0, 0, 0),
23377 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23378 0, 0, 0, 0),
23379 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23380 0, 0, 0, 0),
23381 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23382 0, 0, 0, 0),
23383 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23384 0, 0, 0, 0),
23385 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23386 0, 0, 0, 0),
23387 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23388 0, 0, 0, 0),
23389 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23390 0, 0, 0, 0),
23391 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23392 0, 0, 0, 0),
23393 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23394 0, 0, 0, 0),
23395 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23396 0, 0, 0, 0),
23397 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23398 0, 0, 0, 0),
23399 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23400 0, 0, 0, 0),
23401 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23402 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023403 /* incall */
23404 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23405 0, 0, 0, 0),
23406 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23407 0, 0, 0, 0),
23408 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23409 0, 0, 0, 0),
23410 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23411 0, 0, 0, 0),
23412 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23413 0, 0, 0, 0),
23414 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23415 0, 0, 0, 0),
23416 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23417 0, 0, 0, 0),
23418 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23419 0, 0, 0, 0),
23420 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23421
23422 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23423 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23424 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23425 0, 0, 0, 0),
23426 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23427 0, 0, 0, 0),
23428 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23429 0, 0, 0, 0),
23430 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23431 0, 0, 0, 0),
23432 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23433 0, 0, 0, 0),
23434 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23435 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023436 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23437 0, 0, 0, 0),
23438 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23439 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023440 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23441 0, 0, 0, 0),
23442 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23443 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023444 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23445 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23446 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23447 0, 0, 0, 0),
23448 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23449 0, 0, 0, 0),
23450 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23451 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23452 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23453 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23454 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23455 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23456 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23457 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23458 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23459 /* In- call recording */
23460 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23461 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023462 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23463 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023464 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23465 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23466
23467 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23468 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023469 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23470 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023471 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23472 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23473
23474 /* Switch Definitions */
23475 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23476 &slim_fm_switch_mixer_controls),
23477 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23478 &slim1_fm_switch_mixer_controls),
23479 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23480 &slim3_fm_switch_mixer_controls),
23481 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23482 &slim4_fm_switch_mixer_controls),
23483 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23484 &slim6_fm_switch_mixer_controls),
23485 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23486 &pcm_rx_switch_mixer_controls),
23487 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23488 &int0_mi2s_rx_switch_mixer_controls),
23489 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23490 &int4_mi2s_rx_switch_mixer_controls),
23491 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23492 &pri_mi2s_rx_switch_mixer_controls),
23493 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23494 &sec_mi2s_rx_switch_mixer_controls),
23495 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23496 &tert_mi2s_rx_switch_mixer_controls),
23497 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23498 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023499 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23500 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023501 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23502 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023503 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23504 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023505 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23506 &hfp_pri_aux_switch_mixer_controls),
23507 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23508 &hfp_aux_switch_mixer_controls),
23509 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23510 &hfp_int_switch_mixer_controls),
23511 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23512 &hfp_slim7_switch_mixer_controls),
23513 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23514 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023515 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23516 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023517 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023518 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023519 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023520 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023521
23522 /* Mixer definitions */
23523 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23524 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23525 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23526 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23527 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23528 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23529 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23530 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23531 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23532 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23533 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23534 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023535 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23536 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023537 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23538 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23539 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23540 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023541 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23542 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023543 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23544 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23545 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23546 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023547 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23548 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23549 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23550 quaternary_mi2s_rx_mixer_controls,
23551 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23552 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23553 tertiary_mi2s_rx_mixer_controls,
23554 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23555 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23556 secondary_mi2s_rx_mixer_controls,
23557 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23558 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23559 secondary_mi2s_rx2_mixer_controls,
23560 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23561 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23562 primary_mi2s_rx_mixer_controls,
23563 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23564 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23565 int0_mi2s_rx_mixer_controls,
23566 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23567 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23568 int4_mi2s_rx_mixer_controls,
23569 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23570 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23571 quinary_mi2s_rx_mixer_controls,
23572 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023573 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23574 senary_mi2s_rx_mixer_controls,
23575 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023576 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23577 pri_tdm_rx_0_mixer_controls,
23578 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23579 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23580 pri_tdm_rx_1_mixer_controls,
23581 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23582 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23583 pri_tdm_rx_2_mixer_controls,
23584 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23585 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23586 pri_tdm_rx_3_mixer_controls,
23587 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23588 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23589 pri_tdm_tx_0_mixer_controls,
23590 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23591 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23592 sec_tdm_rx_0_mixer_controls,
23593 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23594 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23595 sec_tdm_rx_1_mixer_controls,
23596 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23597 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23598 sec_tdm_rx_2_mixer_controls,
23599 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23600 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23601 sec_tdm_rx_3_mixer_controls,
23602 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23603 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23604 sec_tdm_tx_0_mixer_controls,
23605 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23606 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23607 tert_tdm_rx_0_mixer_controls,
23608 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23609 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23610 tert_tdm_tx_0_mixer_controls,
23611 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23612 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23613 tert_tdm_rx_1_mixer_controls,
23614 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23615 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23616 tert_tdm_rx_2_mixer_controls,
23617 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23618 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23619 tert_tdm_rx_3_mixer_controls,
23620 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23621 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23622 tert_tdm_rx_4_mixer_controls,
23623 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23624 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23625 quat_tdm_rx_0_mixer_controls,
23626 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23627 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23628 quat_tdm_tx_0_mixer_controls,
23629 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23630 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23631 quat_tdm_rx_1_mixer_controls,
23632 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23633 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23634 quat_tdm_rx_2_mixer_controls,
23635 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23636 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23637 quat_tdm_rx_3_mixer_controls,
23638 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023639 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23640 quin_tdm_rx_0_mixer_controls,
23641 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23642 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23643 quin_tdm_tx_0_mixer_controls,
23644 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23645 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23646 quin_tdm_rx_1_mixer_controls,
23647 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
23648 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23649 quin_tdm_rx_2_mixer_controls,
23650 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
23651 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23652 quin_tdm_rx_3_mixer_controls,
23653 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023654 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23655 sen_tdm_tx_0_mixer_controls,
23656 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23657 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23658 sen_tdm_rx_0_mixer_controls,
23659 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23660 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23661 sen_tdm_rx_1_mixer_controls,
23662 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23663 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23664 sen_tdm_rx_2_mixer_controls,
23665 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23666 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23667 sen_tdm_rx_3_mixer_controls,
23668 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020023669 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23670 pri_meta_mi2s_rx_mixer_controls,
23671 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
23672 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23673 sec_meta_mi2s_rx_mixer_controls,
23674 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023675 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23676 wsa_cdc_dma_rx_0_mixer_controls,
23677 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23678 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23679 wsa_cdc_dma_rx_1_mixer_controls,
23680 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023681 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23682 rx_cdc_dma_rx_0_mixer_controls,
23683 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23684 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23685 rx_cdc_dma_rx_1_mixer_controls,
23686 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23687 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23688 rx_cdc_dma_rx_2_mixer_controls,
23689 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23690 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23691 rx_cdc_dma_rx_3_mixer_controls,
23692 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23693 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23694 rx_cdc_dma_rx_4_mixer_controls,
23695 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
23696 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
23697 rx_cdc_dma_rx_5_mixer_controls,
23698 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
23699 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
23700 rx_cdc_dma_rx_6_mixer_controls,
23701 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
23702 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
23703 rx_cdc_dma_rx_7_mixer_controls,
23704 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023705 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
23706 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
23707 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
23708 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
23709 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
23710 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
23711 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
23712 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
23713 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
23714 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
23715 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
23716 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
23717 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
23718 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
23719 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
23720 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023721 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
23722 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023723 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
23724 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023725 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
23726 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
23727 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
23728 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
23729 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
23730 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
23731 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
23732 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023733 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
23734 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070023735 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
23736 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053023737 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
23738 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023739 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
23740 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
23741 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
23742 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023743 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
23744 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023745 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23746 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
23747 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23748 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
23749 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23750 tert_auxpcm_rx_mixer_controls,
23751 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
23752 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23753 quat_auxpcm_rx_mixer_controls,
23754 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023755 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23756 quin_auxpcm_rx_mixer_controls,
23757 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023758 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23759 sen_auxpcm_rx_mixer_controls,
23760 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023761 /* incall */
23762 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
23763 incall_music_delivery_mixer_controls,
23764 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
23765 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23766 incall_music2_delivery_mixer_controls,
23767 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
23768 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23769 slimbus_4_rx_mixer_controls,
23770 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
23771 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23772 slimbus_6_rx_mixer_controls,
23773 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
23774 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23775 usb_audio_rx_mixer_controls,
23776 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
23777 /* Voice Mixer */
23778 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
23779 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
23780 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
23781 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
23782 SND_SOC_NOPM, 0, 0,
23783 sec_i2s_rx_voice_mixer_controls,
23784 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
23785 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
23786 SND_SOC_NOPM, 0, 0,
23787 sec_mi2s_rx_voice_mixer_controls,
23788 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
23789 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
23790 SND_SOC_NOPM, 0, 0,
23791 slimbus_rx_voice_mixer_controls,
23792 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23793 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23794 SND_SOC_NOPM, 0, 0,
23795 bt_sco_rx_voice_mixer_controls,
23796 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23797 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23798 SND_SOC_NOPM, 0, 0,
23799 afe_pcm_rx_voice_mixer_controls,
23800 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23801 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23802 SND_SOC_NOPM, 0, 0,
23803 aux_pcm_rx_voice_mixer_controls,
23804 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23805 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23806 SND_SOC_NOPM, 0, 0,
23807 sec_aux_pcm_rx_voice_mixer_controls,
23808 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23809 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23810 SND_SOC_NOPM, 0, 0,
23811 tert_aux_pcm_rx_voice_mixer_controls,
23812 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23813 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23814 SND_SOC_NOPM, 0, 0,
23815 quat_aux_pcm_rx_voice_mixer_controls,
23816 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023817 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23818 SND_SOC_NOPM, 0, 0,
23819 quin_aux_pcm_rx_voice_mixer_controls,
23820 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023821 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23822 SND_SOC_NOPM, 0, 0,
23823 sen_aux_pcm_rx_voice_mixer_controls,
23824 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023825 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23826 SND_SOC_NOPM, 0, 0,
23827 hdmi_rx_voice_mixer_controls,
23828 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23829 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23830 SND_SOC_NOPM, 0, 0,
23831 mi2s_rx_voice_mixer_controls,
23832 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23833 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23834 SND_SOC_NOPM, 0, 0,
23835 pri_mi2s_rx_voice_mixer_controls,
23836 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23837 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23838 SND_SOC_NOPM, 0, 0,
23839 int0_mi2s_rx_voice_mixer_controls,
23840 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23841 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23842 SND_SOC_NOPM, 0, 0,
23843 int4_mi2s_rx_voice_mixer_controls,
23844 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23845 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23846 SND_SOC_NOPM, 0, 0,
23847 tert_mi2s_rx_voice_mixer_controls,
23848 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23849 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23850 SND_SOC_NOPM, 0, 0,
23851 quat_mi2s_rx_voice_mixer_controls,
23852 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23853 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23854 SND_SOC_NOPM, 0, 0,
23855 quin_mi2s_rx_voice_mixer_controls,
23856 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023857 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23858 SND_SOC_NOPM, 0, 0,
23859 pri_tdm_rx_0_voice_mixer_controls,
23860 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23861 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23862 SND_SOC_NOPM, 0, 0,
23863 pri_tdm_rx_1_voice_mixer_controls,
23864 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23865 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23866 SND_SOC_NOPM, 0, 0,
23867 pri_tdm_rx_2_voice_mixer_controls,
23868 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23869 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23870 SND_SOC_NOPM, 0, 0,
23871 pri_tdm_rx_3_voice_mixer_controls,
23872 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023873 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23874 SND_SOC_NOPM, 0, 0,
23875 sen_mi2s_rx_voice_mixer_controls,
23876 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023877 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23878 SND_SOC_NOPM, 0, 0,
23879 quat_tdm_rx_2_voice_mixer_controls,
23880 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023881 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23882 SND_SOC_NOPM, 0, 0,
23883 wsa_cdc_dma_rx_0_voice_mixer_controls,
23884 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23885 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23886 SND_SOC_NOPM, 0, 0,
23887 rx_cdc_dma_rx_0_voice_mixer_controls,
23888 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023889 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23890 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23891 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023892 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23893 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23894 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23895 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23896 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23897 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23898 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23899 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23900 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23901 int_bt_a2dp_rx_mixer_controls,
23902 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23903 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23904 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23905 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23906 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23907 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23908 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23909 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23910 tx_voice2_stub_mixer_controls,
23911 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23912 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23913 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23914 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23915 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23916 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23917 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23918 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23919 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23920 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23921 SND_SOC_NOPM, 0, 0,
23922 slimbus_6_rx_voice_mixer_controls,
23923 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23924 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23925 slimbus_7_rx_voice_mixer_controls,
23926 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23927 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23928 slimbus_8_rx_voice_mixer_controls,
23929 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23930 /* port mixer */
23931 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23932 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23933 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23934 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23935 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23936 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23937 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23938 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23939 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23940 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23941 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23942 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23943 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
23944 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
23945 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023946 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
23947 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
23948 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023949 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
23950 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
23951 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023952 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23953 sbus_1_rx_port_mixer_controls,
23954 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
23955 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23956 bt_sco_rx_port_mixer_controls,
23957 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
23958 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
23959 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
23960 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
23961 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
23962 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
23963 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
23964 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
23965 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
23966 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070023967 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070023968 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
23969 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023970 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
23971 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
23972 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
23973 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
23974 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
23975 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
23976 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
23977 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
23978 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
23979 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23980 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
23981 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23982 primary_mi2s_rx_port_mixer_controls,
23983 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
23984 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23985 sec_mi2s_rx_port_mixer_controls,
23986 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
23987 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23988 tert_mi2s_rx_port_mixer_controls,
23989 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
23990 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23991 quat_mi2s_rx_port_mixer_controls,
23992 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023993 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23994 quin_mi2s_rx_port_mixer_controls,
23995 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023996 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23997 sen_mi2s_rx_port_mixer_controls,
23998 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023999 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24000 pri_tdm_rx_0_port_mixer_controls,
24001 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24002 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24003 pri_tdm_rx_1_port_mixer_controls,
24004 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24005 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24006 pri_tdm_rx_2_port_mixer_controls,
24007 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24008 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24009 pri_tdm_rx_3_port_mixer_controls,
24010 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24011 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24012 sec_tdm_rx_0_port_mixer_controls,
24013 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24014 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24015 sec_tdm_rx_1_port_mixer_controls,
24016 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24017 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24018 sec_tdm_rx_2_port_mixer_controls,
24019 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24020 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24021 sec_tdm_rx_3_port_mixer_controls,
24022 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024023 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24024 sec_tdm_rx_7_port_mixer_controls,
24025 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024026 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24027 tert_tdm_rx_0_port_mixer_controls,
24028 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24029 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24030 tert_tdm_rx_1_port_mixer_controls,
24031 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24032 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24033 tert_tdm_rx_2_port_mixer_controls,
24034 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24035 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24036 tert_tdm_rx_3_port_mixer_controls,
24037 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24038 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24039 quat_tdm_rx_0_port_mixer_controls,
24040 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24041 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24042 quat_tdm_rx_1_port_mixer_controls,
24043 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24044 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24045 quat_tdm_rx_2_port_mixer_controls,
24046 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24047 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24048 quat_tdm_rx_3_port_mixer_controls,
24049 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024050 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24051 quat_tdm_rx_7_port_mixer_controls,
24052 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024053 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24054 quin_tdm_rx_0_port_mixer_controls,
24055 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24056 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24057 quin_tdm_rx_1_port_mixer_controls,
24058 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24059 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24060 quin_tdm_rx_2_port_mixer_controls,
24061 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24062 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24063 quin_tdm_rx_3_port_mixer_controls,
24064 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024065 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24066 quin_tdm_rx_7_port_mixer_controls,
24067 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024068 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24069 sen_tdm_rx_0_port_mixer_controls,
24070 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24071 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24072 sen_tdm_rx_1_port_mixer_controls,
24073 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24074 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24075 sen_tdm_rx_2_port_mixer_controls,
24076 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24077 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24078 sen_tdm_rx_3_port_mixer_controls,
24079 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024080 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24081 int0_mi2s_rx_port_mixer_controls,
24082 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24083 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24084 int4_mi2s_rx_port_mixer_controls,
24085 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024086 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24087 wsa_cdc_dma_rx_0_port_mixer_controls,
24088 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24089 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24090 rx_cdc_dma_rx_0_port_mixer_controls,
24091 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024092 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24093 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24094 ARRAY_SIZE(tx_qchat_mixer_controls)),
24095 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24096 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24097 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24098 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24099 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24100 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024101 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24102 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24103 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024104 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24105 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24106 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024107 /* lsm mixer definitions */
24108 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24109 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24110 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24111 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24112 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24113 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24114 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24115 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24116 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24117 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24118 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24119 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24120 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24121 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24122 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24123 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24124 /* Virtual Pins to force backends ON atm */
24125 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24126 SND_SOC_DAPM_INPUT("BE_IN"),
24127
24128 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24129 &slim0_rx_vi_fb_lch_mux),
24130 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24131 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024132 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24133 &wsa_rx_0_vi_fb_lch_mux),
24134 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24135 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024136 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24137 &mi2s_rx_vi_fb_mux),
24138 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24139 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24140 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24141 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24142
24143 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24144 &voc_ext_ec_mux),
24145 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24146 &ext_ec_ref_mux_ul1),
24147 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24148 &ext_ec_ref_mux_ul2),
24149 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24150 &ext_ec_ref_mux_ul3),
24151 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24152 &ext_ec_ref_mux_ul4),
24153 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24154 &ext_ec_ref_mux_ul5),
24155 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24156 &ext_ec_ref_mux_ul6),
24157 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24158 &ext_ec_ref_mux_ul8),
24159 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24160 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024161 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24162 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024163 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24164 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024165 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24166 &ext_ec_ref_mux_ul17),
24167 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24168 &ext_ec_ref_mux_ul18),
24169 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24170 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024171 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24172 &ext_ec_ref_mux_ul28),
24173 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24174 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024175};
24176
24177static const struct snd_soc_dapm_route intercon[] = {
24178 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24179 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24180 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24181 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24182 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24183 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24184 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24185 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24186 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24187 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24188 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24189 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24190 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24191 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24192 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24193 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024194 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024195 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24196
24197 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24198 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24199 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24200 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24201 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24202 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24203 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24204 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24205 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24206 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24207 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24208 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24209 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24210 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24211 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24212 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024213 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024214 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24215
24216 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24217 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24218 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24219 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24220 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24221 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24222 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24223 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24224 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24225 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24226 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24227 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24228 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24229 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24230 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24231 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024232 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024233 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24234
24235 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24236 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24237 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24238 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24239 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24240 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24241 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24242 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24243 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24244 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24245 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24246 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24247 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24248 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24249 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24250 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024251 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024252 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24253
24254 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24255 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24256 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24257 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24258 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24259 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24260 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24261 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24262 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24263 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24264 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24265 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24266 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24267 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24268 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24269 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024270 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024271 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24272
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024273 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24274 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24275 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24276 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24277 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24278 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24279 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24280 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24281 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24282 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24283 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24284 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24285 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24286 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24287 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24288 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024289 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024290 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24291
24292 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24293 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24294 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24295 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24296 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24297 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24298 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24299 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24300 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24301 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24302 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24303 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24304 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24305 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24306 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24307 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024308 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024309 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24310
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024311 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24312 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24313 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24314 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24315 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24316 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24317 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24318 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24319 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24320 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24321 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24322 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24323 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24324 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24325 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24326 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024327 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024328 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24329
24330 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24331 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24332 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24333 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24334 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24335 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24336 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24337 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24338 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24339 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24340 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24341 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24342 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24343 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24344 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24345 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024346 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024347 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24348
24349 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24350 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24351 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24352 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24353 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24354 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24355 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24356 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24357 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24358 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24359 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24360 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24361 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24362 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24363 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24364 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024365 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024366 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24367
24368 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24369 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24370 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24371 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24372 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24373 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24374 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24375 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24376 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24377 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24378 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24379 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24380 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24381 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24382 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24383 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024384 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024385 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24386
24387 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24388 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24389 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24390 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24391 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24392 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24393 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24394 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24395 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24396 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24397 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24398 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24399 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24400 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24401 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24402 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024403 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024404 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24405
24406 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24407 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24408 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24409 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24410 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24411 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24412 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24413 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24414 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24415 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24416 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24417 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24418 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24419 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24420 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24421 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024422 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024423 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24424
24425 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24426 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24427 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24428 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24429 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24430 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24431 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24432 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24433 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24434 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24435 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24436 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24437 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24438 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24439 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24440 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024441 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024442 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24443
24444 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24445 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24446 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24447 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24448 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24449 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24450 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24451 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24452 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24453 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24454 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24455 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24456 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24457 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24458 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24459 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024460 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024461 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024463 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24464 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24465 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24466 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24467 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24468 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24469 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24470 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24471 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24472 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24473 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24474 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24475 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24476 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24477 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24478 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024479 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024480 {"HDMI", NULL, "HDMI Mixer"},
24481
24482 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24483 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24484 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24485 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24486 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24487 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24488 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24489 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24490 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24491 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24492 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24493 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24494 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24495 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24496 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24497 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024498 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024499 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24500
Karthikeyan Mani57550082018-05-03 18:43:58 -070024501 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24502 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24503 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24504 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24505 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24506 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24507 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24508 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24509 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24510 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24511 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24512 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24513 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24514 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24515 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24516 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024517 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024518 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24519
Ralf Herzc8701f72018-06-20 11:37:35 +020024520 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24521 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24522 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24523 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24524 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24525 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24526 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24527 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24528 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24529 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24530 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24531 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24532 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24533 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24534 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24535 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024536 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024537 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24538
24539 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24540 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24541 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24542 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24543 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24544 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24545 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24546 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24547 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24548 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24549 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24550 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24551 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24552 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24553 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24554 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024555 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024556 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024557
24558 /* incall */
24559 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24560 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
24561 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24562 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24563 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24564 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24565 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24566 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24567 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24568 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24569 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24570 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24571 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24572 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24573 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24574
24575 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24576 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24577 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24578 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24579 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24580 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24581 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24582 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24583 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24584 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24585 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24586 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24587 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24588 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24589 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24590 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024591 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024592 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24593
24594 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24595 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24596 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24597 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24598 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24599 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24600 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24601 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24602 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24603 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24604 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24605 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24606 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24607 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24608 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24609 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024610 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024611 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24612
Surendar Karka3ef3d812018-09-28 18:52:35 +053024613 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24614 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24615 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24616 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24617 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24618 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24619 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24620 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24621 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24622 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24623 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24624 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24625 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24626 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24627 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24628 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24629 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24630 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24631
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024632 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24633 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24634 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24635 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24636 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24637 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24638 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24639 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24640 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24641 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24642 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24643 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24644 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24645 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24646 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24647 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024648 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024649 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24650
24651 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24652 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24653 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24654 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24655 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24656 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24657 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24658 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24659 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24660 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024661 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024662 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24663 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024664 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024665 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024666 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024667 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024668 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024669 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024670 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024671 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024672 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024673 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024674 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024675 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024676 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024677 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24678 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024679 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024680 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024681 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24682 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24683 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24684 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24685 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024686 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24687 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024688 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024689 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024690 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024691 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24692 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24693 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024694 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024695 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24696 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24697 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24698 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24699 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024700 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024701 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024702 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024703 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24704 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24705 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024706 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024707 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24708 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024709 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024710 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024711 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024712 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024713 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024714 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024715 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024716 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24717 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024718 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024719 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024720 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024721 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024722 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24723 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24724 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024725 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024726 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024727 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24728 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24729 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024730 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024731
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024732 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24733 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24734 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24735 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24736 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24737 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24738 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24739 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24740 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24741 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24742 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24743 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24744 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24745 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24746 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24747 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024748 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024749 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
24750
24751 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24752 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24753 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24754 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24755 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24756 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24757 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24758 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24759 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24760 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24761 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24762 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24763 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24764 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24765 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024766 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024767 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
24768
24769 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24770 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24771 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24772 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24773 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24774 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24775 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24776 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24777 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24778 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24779 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24780 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24781 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24782 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024783 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024784 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
24785
24786 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24787 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24788 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24789 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24790 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24791 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24792 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24793 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24794 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24795 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24796 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24797 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24798 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24799 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024800 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024801 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
24802
24803 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24804 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24805
24806 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24807 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24808
24809 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24810 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24811 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24812 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24813 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24814 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24815 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24816 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024817 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024818 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24819 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24820 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24821 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24822 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24823 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24824 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024825 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024826 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24827
24828 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24829 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24830 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24831 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24832 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24833 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24834 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24835 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24836 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24837 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24838 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24839 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24840 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24841 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24842 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24843 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24844
24845 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24846 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24847 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24848 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24849 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24850 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24851 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24852 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24853 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24854 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24855 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24856 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24857 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24858 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24859 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24860 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24861
24862 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24863 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24864 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24865 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24866 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24867 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24868 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24869 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24870 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24871 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24872 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24873 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24874 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24875 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24876 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24877 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24878 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24879 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24880
Karthikeyan Manic3700752019-03-11 18:33:53 -070024881 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24882 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24883 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24884 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24885 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24886 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24887 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24888 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24889 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24890 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24891 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24892 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24893 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24894 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24895 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24896 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24897
Ralf Herz29e07132019-07-26 15:15:21 +020024898 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24899 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24900 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24901 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24902 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24903 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24904 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24905 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24906 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24907 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24908 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24909 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24910 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24911 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24912 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24913 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24914 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24915 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
24916
24917 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24918 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24919 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24920 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24921 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24922 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24923 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24924 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24925 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24926 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24927 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24928 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24929 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24930 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24931 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24932 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24933 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24934 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
24935
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024936 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24937 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24938 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24939 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24940 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24941 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24942 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24943 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24944 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24945 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24946 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24947 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24948 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24949 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24950 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24951 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024952 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024953 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024954 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
24955
24956 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24957 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24958 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24959 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24960 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24961 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24962 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24963 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24964 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24965 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24966 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24967 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24968 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24969 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24970 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24971 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024972 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024973 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024974 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
24975
24976 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24977 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24978 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24979 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24980 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24981 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24982 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24983 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24984 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24985 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24986 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24987 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24988 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24989 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24990 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24991 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024992 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024993 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024994 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
24995
24996 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24997 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24998 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24999 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25000 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25001 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25002 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25003 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25004 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25005 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25006 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25007 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25008 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25009 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25010 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25011 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025012 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025013 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025014 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25015
25016 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25017 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25018 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25019 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25020 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25021 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25022 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25023 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25024 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25025 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25026 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25027 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25028 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25029 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25030 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25031 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25032 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25033
25034 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25035 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25036 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25037 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25038 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25039 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25040 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25041 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25042 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25043 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25044 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25045 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25046 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25047 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25048 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25049 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025050 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025051 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025052 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25053
25054 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25055 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25056 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25057 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25058 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25059 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25060 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25061 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25062 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25063 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25064 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25065 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25066 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25067 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25068 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25069 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025070 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025071 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025072 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25073
25074 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25075 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25076 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25077 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25078 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25079 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25080 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25081 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25082 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25083 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25084 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25085 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25086 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25087 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25088 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25089 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025090 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025091 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025092 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25093
25094 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25095 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25096 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25097 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25098 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25099 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25100 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25101 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25102 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25103 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25104 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25105 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25106 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25107 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25108 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25109 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025110 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025111 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025112 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25113
25114 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25115 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25116 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25117 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25118 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25119 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25120 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25121 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25122 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25123 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25124 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25125 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25126 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25127 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25128 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25129 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25130 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25131
25132 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25133 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25134 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25135 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25136 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25137 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25138 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25139 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25140 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25141 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25142 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25143 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25144 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25145 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25146 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25147 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025148 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025149 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025150 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25151
25152 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25153 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25154 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25155 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25156 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25157 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25158 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25159 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25160 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25161 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25162 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25163 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25164 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25165 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25166 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25167 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25168 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25169
25170 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25171 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25172 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25173 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25174 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25175 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25176 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25177 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25178 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25179 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25180 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25181 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25182 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25183 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25184 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25185 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025186 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025187 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025188 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25189
25190 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25191 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25192 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25193 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25194 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25195 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25196 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25197 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25198 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25199 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25200 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25201 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25202 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25203 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25204 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25205 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025206 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025207 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025208 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25209
25210 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25211 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25212 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25213 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25214 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25215 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25216 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25217 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25218 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25219 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25220 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25221 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25222 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25223 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25224 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25225 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025226 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025227 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025228 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25229
25230 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25231 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25232 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25233 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25234 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25235 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25236 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25237 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25238 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25239 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25240 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25241 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25242 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25243 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25244 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25245 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025246 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025247 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025248 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25249
25250 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25251 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25252 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25253 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25254 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25255 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25256 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25257 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25258 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25259 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25260 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25261 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25262 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25263 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25264 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25265 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25266 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025267 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025268 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025269 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25270
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025271 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25272 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25273 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25274 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25275 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25276 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25277 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25278 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25279 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25280 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25281 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25282 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25283 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25284 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25285 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25286 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25287 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25288
25289 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25290 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25291 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25292 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25293 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25294 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25295 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25296 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25297 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25298 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25299 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25300 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25301 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25302 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25303 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25304 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25305 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025306 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025307 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025308 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25309
25310 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25311 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25312 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25313 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25314 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25315 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25316 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25317 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25318 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25319 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25320 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25321 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25322 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25323 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25324 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25325 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25326 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025327 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025328 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025329 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25330
25331 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25332 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25333 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25334 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25335 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25336 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25337 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25338 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25339 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25340 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25341 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25342 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25343 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25344 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25345 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25346 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25347 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025348 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025349 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025350 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25351
Rohit Kumara5077932017-09-10 22:05:05 +053025352 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25353 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25354 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25355 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25356 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25357 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25358 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25359 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25360 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25361 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25362 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25363 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25364 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25365 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25366 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25367 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25368 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025369 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025370 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025371 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25372
25373 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25374 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25375 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25376 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25377 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25378 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25379 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25380 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25381 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25382 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25383 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25384 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25385 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25386 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25387 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25388 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25389 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25390
25391 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25392 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25393 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25394 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25395 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25396 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25397 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25398 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25399 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25400 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25401 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25402 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25403 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25404 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25405 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25406 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25407 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025408 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025409 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025410 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25411
25412 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25413 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25414 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25415 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25416 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25417 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25418 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25419 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25420 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25421 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25422 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25423 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25424 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25425 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25426 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25427 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25428 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025429 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025430 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025431 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25432
25433 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25434 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25435 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25436 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25437 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25438 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25439 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25440 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25441 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25442 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25443 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25444 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25445 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25446 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25447 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25448 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25449 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025450 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025451 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025452 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25453
Karthikeyan Manic3700752019-03-11 18:33:53 -070025454 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25455 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25456 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25457 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25458 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25459 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25460 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25461 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25462 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25463 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25464 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25465 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25466 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25467 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25468 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25469 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25470 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25471 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25472 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25473
25474 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25475 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25476 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25477 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25478 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25479 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25480 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25481 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25482 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25483 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25484 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25485 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25486 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25487 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25488 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25489 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25490 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25491
25492 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25493 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25494 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25495 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25496 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25497 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25498 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25499 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25500 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25501 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25502 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25503 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25504 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25505 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25506 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25507 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25508 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25509 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25510 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25511
25512 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25513 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25514 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25515 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25516 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25517 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25518 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25519 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25520 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25521 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25522 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25523 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25524 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25525 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25526 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25527 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25528 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25529 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25530 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25531
25532 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25533 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25534 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25535 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25536 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25537 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25538 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25539 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25540 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25541 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25542 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25543 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25544 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25545 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25546 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25547 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25548 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25549 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25550 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25551
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025552 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25553 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25554 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25555 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25556 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025557 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025558 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025559 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25560 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25561 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25562 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25563 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025564 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25565 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025566 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25567 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25568 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25569 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25570 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25571 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25572 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025573 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025574 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25575 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25576 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025577 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025578 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053025579 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025580 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25581 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025582 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025583 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25584 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025585 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25586 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25587 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025588 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025589 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25590 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25591 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025592 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025593 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025594 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25595 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25596 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025597 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25598 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25599 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025600 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25601 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25602 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25603 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25604 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25605 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25606 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25607 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025608 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025609 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25610 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25611 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025612 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025613 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25614 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25615 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025616 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025617 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025618 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25619 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25620 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025621 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025622 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025623 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25624 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25625 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25626 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25627 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025628 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025629 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25630 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25631 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25632 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025633 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025634 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025635
25636 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25637 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25638 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25639 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25640 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25641 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25642 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25643 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25644 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25645 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25646 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25647 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25648 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25649 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25650 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25651 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025652 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025653 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25654 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25655 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25656 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025657 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25658 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25659 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25660 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025661 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25662 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25663 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25664 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25665 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025666 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025667 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25668 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25669 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25670 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25671 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25672 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025673 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25674 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025675
25676 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25677 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25678 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25679 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25680 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25681 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25682 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25683 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25684 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25685 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25686 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25687 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25688 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25689 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25690 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25691 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025692 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025693 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25694 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25695 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25696 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025697 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25698 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25699 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25700 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025701 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25702 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25703 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25704 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25705 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025706 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025707 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25708 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25709 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25710 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25711 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25712 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025713 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25714 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025715
25716 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25717 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25718 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25719 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25720 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25721 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25722 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25723 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25724 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25725 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25726 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25727 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25728 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25729 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25730 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25731 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025732 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025733 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25734 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25735 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25736 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025737 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25738 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25739 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25740 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025741 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25742 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25743 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25744 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25745 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025746 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025747 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25748 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25749 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25750 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25751 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25752 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025753 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25754 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025755
25756 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25757 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25758 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25759 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25760 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25761 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25762 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25763 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25764 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25765 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25766 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25767 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25768 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25769 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25770 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25771 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025772 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025773 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25774 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25775 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25776 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025777 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25778 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25779 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25780 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025781 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25782 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25783 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25784 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25785 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025786 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025787 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25788 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25789 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25790 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25791 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25792 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025793 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25794 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025795
25796 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25797 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25798 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25799 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25800 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25801 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25802 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25803 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25804 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25805 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25806 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25807 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25808 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25809 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25810 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25811 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025812 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025813 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25814 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25815 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25816 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025817 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25818 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25819 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25820 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025821 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25822 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25823 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25824 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25825 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025826 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025827 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25828 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25829 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25830 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25831 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25832 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025833 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25834 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025835
25836 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25837 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25838 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25839 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25840 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25841 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25842 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25843 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25844 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25845 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25846 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25847 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25848 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25849 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25850 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25851 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025852 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025853 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25854 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25855 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25856 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025857 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25858 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25859 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25860 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025861 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25862 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25863 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25864 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25865 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025866 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025867 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25868 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25869 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25870 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25871 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25872 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025873 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25874 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025875
25876 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25877 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25878 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25879 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25880 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25881 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25882 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25883 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25884 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25885 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25886 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25887 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25888 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25889 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25890 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25891 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025892 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025893 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25894 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25895 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25896 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025897 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25898 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25899 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25900 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025901 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25902 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25903 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25904 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25905 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025906 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025907 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25908 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25909 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25910 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25911 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25912 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025913 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25914 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025915
Samyak Jain810e42a2019-01-07 17:53:34 +053025916 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025917 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25918 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25919 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25920 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25921 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25922 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25923 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25924 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025925 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25926 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25927 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25928 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025929 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25930 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25931 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25932 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025933 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25934 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25935 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25936 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25937 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025938 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025939 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25940 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25941 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25942 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25943 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25944 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025945 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25946 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025947 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025948
Laxminath Kasam38070be2017-08-17 18:21:59 +053025949 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25950 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25951 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25952 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25953 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25954 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25955 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25956 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025957 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25958 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25959 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25960 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25961 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25962 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025963 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025965 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25966 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25967 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25968 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025969 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025970 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025971 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25972 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25973 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25974 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25975 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25976 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25977 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25978 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25979 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25980 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25981 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25982 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25983 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25984 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25985 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25986 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025987 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25988 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25989 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25990 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025991 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25992 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25993 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25994 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025995 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25996 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25997 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25998 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25999 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026000 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026001 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26002 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26003 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26004 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26005 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26006 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026007 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26008 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026009 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026010
Derek Chen07c6d1c2018-07-05 10:39:25 -070026011 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26012 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26013 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26014 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26015 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26016 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26017 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26018 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26019 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26020 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26021 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26022 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26023 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26024 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26025 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26026 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26027 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26028 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26029 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26030 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26031 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26032 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026033 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26034 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26035 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26036 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026037 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26038 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26039 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26040 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26041 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026042 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026043 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26044 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26045 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26046 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26047 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26048 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26049 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26050 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026051 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026052
Derek Chenb097d922019-07-31 17:28:02 -070026053 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26054 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26055 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26056 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26057 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26058 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26059 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26060 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26061 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26062 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26063 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26064 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26065 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26066 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26067 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26068 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26069 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26070 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26071 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26072 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26073
Surendar Karkac1cde372018-08-14 18:56:24 +053026074 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026075 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026076 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26077 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026078 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026079 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26080 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26081 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26082 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26083 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026084 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026085 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26086 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026087 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026088
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026089 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26090 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26091 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26092 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26093 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26094 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026095 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026096
Asish Bhattacharya34504582017-08-08 12:55:01 +053026097 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26098 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26099 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26100 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26101 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26102 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26103 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26104 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26105 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26106 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26107 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26108 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26109 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26110 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26111 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26112 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26113 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026114 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26115 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26116 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26117 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26118 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026119 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026120 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26121 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26122 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26123 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26124 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26125 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026126 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26127 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026128 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026129
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026130 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26131 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26132 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26133 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26134 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26135 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026136 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026137
26138 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26139 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26140 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26141 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26142 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26143 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026144 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026145 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26146 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026147
26148 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26149 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26150 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26151 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26152 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26153 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026154 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026155 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26156 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026157
26158 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26159 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26160 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26161 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26162 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26163 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026164 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026165 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26166 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026167
26168 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26169 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26170 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26171 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26172 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26173 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026174 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026175 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26176 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026177
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026178 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26179 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26180 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26181 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26182 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26183 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26184 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26185 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26186 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26187
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026188 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26189 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26190 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26191 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26192 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26193 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26194 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26195 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26196 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26197 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26198 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26199 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26200 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26201 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26202 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26203 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26204 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26205 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26206
26207 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26208 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26209 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26210 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26211 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26212 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26213 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26214 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26215 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26216 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26217 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26218 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26219 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26220 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26221 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26222 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26223 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26224 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26225
26226 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26227 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26228 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26229 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26230 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26231 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26232 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26233 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26234 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26235 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26236 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26237 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26238 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26239 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26240 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26241 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26242 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26243
26244 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26245 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26246 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26247 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26248 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26249 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26250 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26251 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26252 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26253 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26254 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26255 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26256 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26257 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26258 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26259 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26260 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26261
26262 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26263 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26264 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026265 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026266 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26267 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26268 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026269 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26270 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026271 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026272 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26273 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026274 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026275 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26276 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026277 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026278 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26279 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26280 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026281 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26282 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026283 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026284 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26285 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26286 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26287
26288 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26289 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26290 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026291 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026292 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26293 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26294 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026295 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26296 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026297 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026298 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26299 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026300 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026301 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26302 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26303 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26304 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26305 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26306 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26307 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26308 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26309 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026310 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026311 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026312 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26313 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26314 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26315 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026316 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026317 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026318 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026319 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26320 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026321 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026322
26323 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26324 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26325 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26326 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26327 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26328 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26329 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26330 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26331 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26332 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26333 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26334 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26335 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26336 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26337 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26338 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026339 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026340 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26341
26342 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26343 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26344 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26345 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26346 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26347 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26348 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26349 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26350 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26351 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26352 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26353 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26354 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26355 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26356 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26357 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026358 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026359 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26360
26361 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26362 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26363 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26364 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26365 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26366 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26367 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26368 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26369 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26370 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26371 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26372 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26373 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26374 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26375 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26376 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26377 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26378
26379 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26380 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26381 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26382 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26383 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26384 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26385 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26386 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26387 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26388 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26389 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26390 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26391 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26392 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26393 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26394 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26395 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26396
Rohit Kumara5077932017-09-10 22:05:05 +053026397 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26398 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26399 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26400 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26401 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26402 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26403 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26404 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26405 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26406 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26407 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26408 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26409 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26410 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26411 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26412 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26413 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26414
Karthikeyan Manic3700752019-03-11 18:33:53 -070026415 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26416 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26417 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26418 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26419 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26420 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26421 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26422 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26423 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26424 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26425 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26426 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26427 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26428 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26429 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26430 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26431 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26432
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026433 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26434 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26435 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26436 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26437 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26438 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26439
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026440 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26441 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26442 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26443 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26444
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026445 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026446 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26447 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026448 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26449 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26450 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26451 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26452 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26453
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026454 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26455 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026456 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26457 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26458 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26459 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26460
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026461 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26462 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026463 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26464 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26465 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26466 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26467
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026468 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26469 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026470 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26471 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26472 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26473 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26474
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026475 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26476 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026477 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26478 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26479 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26480 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26481
Karthikeyan Mani57550082018-05-03 18:43:58 -070026482 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26483 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26484 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26485 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26486 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26487 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026489 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26490 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26491 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26492 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26493 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026494 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026496 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26497 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26498 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26499 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26500 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26501 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26502
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026503 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26504 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026505 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26506 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26507 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26508 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26509
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026510 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26511 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026512 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26513 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26514 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26515 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26516
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026517 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26518 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026519 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26520 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26521 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26522 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26523
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026524 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26525 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026526 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26527 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26528 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26529 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26530
Rohit Kumara5077932017-09-10 22:05:05 +053026531 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26532 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026533 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26534 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26535 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26536 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26537
Karthikeyan Manic3700752019-03-11 18:33:53 -070026538 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26539 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26540 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26541 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26542 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26543 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26544
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026545 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26546 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26547 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26548 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26549 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26550 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26551 {"HDMI", NULL, "HDMI_DL_HL"},
26552
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026553 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026554 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26555 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026556 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26557 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26558 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026559 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026560 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26561
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026562 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026563 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26564 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026565 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26566 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26567 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26568 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26569 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26570
26571 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26572 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26573 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26574 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26575 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26576 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26577
26578 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26579 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26580 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26581 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26582 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26583 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26584
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026585 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026586 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26587 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026588 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26589 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26590 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26591 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26592 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26593
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026594 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026595 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26596 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026597 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26598 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26599 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26600 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26601
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026602 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026603 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26604 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026605 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26606 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26607 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26608 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26609
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026610 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026611 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26612 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26613 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26614 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26615 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26616 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26617 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26618 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26619
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026620 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026621 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26622 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26623 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26624 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26625 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26626 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26627 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26628 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26629
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026630 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026631 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26632 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26633 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26634 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26635 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26636 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26637 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26638 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26639
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026640 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026641 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26642 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26643 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26644 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26645 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26646 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26647 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26648 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26649
Karthikeyan Manic3700752019-03-11 18:33:53 -070026650 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26651 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26652 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26653 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26654 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26655
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026656 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26657 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26658
Kunlei Zhang478379f2019-08-01 17:05:33 +080026659 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026660 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26661 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26662 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26663
Kunlei Zhang478379f2019-08-01 17:05:33 +080026664 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026665 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26666 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26667 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26668
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026669 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26670 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26671 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26672 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026673 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026674 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070026675 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026676 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026677 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
26678 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
26679
26680 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26681 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26682 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26683 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26684 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26685 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26686 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26687 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26688 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26689 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026690 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26691 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026692
26693 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26694 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26695 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26696 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26697
26698 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26699 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26700 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26701 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26702
26703 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26704 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26705 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26706 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26707
26708 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26709 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26710 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26711 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26712
26713 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26714 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26715 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26716 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26717
26718 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26719 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26720 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26721 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26722
26723 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26724 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26725 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26726 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26727
Laxminath Kasam38070be2017-08-17 18:21:59 +053026728 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26729 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26730 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26731 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26732 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26733 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26734 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26735 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26736 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26737 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026738 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26739 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070026740
26741 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26742 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26743 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26744 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26745
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026746 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26747 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26748 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26749 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26750
26751 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26752 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26753 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26754 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26755
26756 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26757 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26758 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26759 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26760
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026761 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26762 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26763 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26764 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26765
26766 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26767 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26768 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26769 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080026770
26771 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26772 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26773 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26774 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26775 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26776 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26777 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26778 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26779
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026780 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
26781 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
26782 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
26783 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
26784 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
26785 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
26786 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
26787 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026788 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026789 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026790 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
26791 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
26792 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026793 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
26794 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026795 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026796
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026797 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
26798 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
26799 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026800 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026801 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
26802 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
26803 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
26804 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
26805 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
26806 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
26807 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
26808 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
26809 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
26810 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
26811 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
26812 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026813 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026814 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026815 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026816 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
26817 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
26818 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
26819 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
26820 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
26821 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026822 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
26823 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026824 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026825 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
26826
26827 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
26828 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026829 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026830 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
26831 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
26832 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
26833 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
26834 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
26835 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
26836 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
26837 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
26838 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
26839 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
26840 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
26841 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
26842 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026843 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026844 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026845 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
26846 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
26847 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
26848 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
26849 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
26850 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026851 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
26852 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070026853 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026854 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
26855
26856 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
26857 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026858 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026859 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
26860 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
26861 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
26862 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
26863 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
26864 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
26865 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
26866 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
26867 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
26868 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
26869 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
26870 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026871 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026872 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026873 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026874 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080026875 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
26876 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
26877 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
26878 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
26879 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
26880 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026881 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
26882
26883 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
26884 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
26885 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
26886 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
26887 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
26888 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
26889 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
26890 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
26891 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
26892 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080026893 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
26894 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026895 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
26896 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
26897 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
26898 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
26899 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053026900 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26901 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
26902 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026903 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26904 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
26905 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026906 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26907 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26908 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26909 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26910 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26911 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26912 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26913 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026914 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26915 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026916 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026917 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026918 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026919 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26920
26921 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26922 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26923 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26924 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26925 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26926 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26927 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26928 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026929 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26930 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026931 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026932 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026933 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026934 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26935
26936
26937 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26938 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26939 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26940 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26941 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26942 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26943 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26944 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026945 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26946 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026947 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026948 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026949 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026950 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
26951
26952
26953 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26954 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26955 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26956 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26957 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26958 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26959 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26960 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026961 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26962 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026963 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026964 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026965 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026966 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
26967
26968 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26969 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26970 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26971 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26972 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26973 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26974 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26975 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026976 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26977 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026978 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026979 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026980 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026981 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
26982
26983 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26984 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26985 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26986 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26987 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26988 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026989 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26990 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026991 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026992 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026993 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026994 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
26995
26996 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26997 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26998 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26999 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27000 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27001 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027002 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27003 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027004 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027005 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027006 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027007 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27008
27009 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27010 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27011 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27012 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27013 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27014 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027015 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27016 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027017 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027018 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027019 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027020 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27021
27022
27023 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27024 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27025 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27026 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27027 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27028 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27029 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27030 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27031 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27032 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27033 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027034 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027035 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027036 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27037 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27038 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27039 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27040 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27041 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27042
27043 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27044 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27045 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27046 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27047 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27048 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27049 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27050 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27051 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27052 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27053 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27054 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027055 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27056 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027057 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027058 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027059 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027060 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27061 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27062 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27063 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27064
27065 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27066 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27067 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27068 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27069 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27070 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27071 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27072 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27073 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27074 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27075 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27076
27077 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27078 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027079 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27080 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027081 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27082 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027083 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27084 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27085 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27086 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27087 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27088 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27089 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27090 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27091 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27092 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27093
27094 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27095 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27096 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27097 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27098 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27099 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27100 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27101 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27102 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27103 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27104 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27105 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27106 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27107 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27108 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27109 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027110 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027111 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27112 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27113 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27114 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027115 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027116 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27117 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27118 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27119 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27120 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27121 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27122 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27123 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027124 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027125 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27126 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27127 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27128 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027129 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027130 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27131 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27132 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27133 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027134 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027135 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27136 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27137 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27138 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027139 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027140 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27141 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27142 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27143 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27144 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27145 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27146 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27147 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027148
27149 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27150 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27151 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27152 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27153 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27154 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27155 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27156 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27157 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27158 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27159 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27160 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27161 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27162 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27163 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27164 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027165 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27166 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27167 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27168 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027169 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27170 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27171 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27172 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027173 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27174
27175 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27176 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27177 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27178 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27179 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27180 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27181 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27182 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27183 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27184 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27185 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27186 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27187 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27188 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27189 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27190 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027191 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27192 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27193 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27194 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027195 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27196 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27197 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27198 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027199 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27200
27201 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27202 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27203 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27204 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27205 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27206 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27207 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27208 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27209 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27210 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27211 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27212 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27213 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27214 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27215 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27216 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027217 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27218 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27219 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27220 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027221 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27222 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27223 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27224 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027225 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27226
27227 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27228 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27229 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27230 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27231 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27232 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27233 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27234 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27235 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27236 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27237 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27238 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27239 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27240 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27241 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27242 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027243 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27244 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27245 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27246 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027247 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27248 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27249 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27250 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027251 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27252
27253 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27254 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27255 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27256 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27257 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27258 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27259 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27260 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27261 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27262 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27263 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27264 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27265 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27266 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27267 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27268 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027269 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27270 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27271 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27272 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027273 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27274 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27275 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27276 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027277 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27278
27279 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27280 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27281 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27282 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27283 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27284 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27285 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27286 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27287 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27288 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27289 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27290 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27291 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27292 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27293 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27294 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027295 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27296 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27297 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27298 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027299 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27300 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27301 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27302 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027303 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27304
27305 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27306 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27307 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27308 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27309 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27310 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27311 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27312 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27313 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27314 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27315 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27316 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27317 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27318 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27319 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27320 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027321 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27322 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27323 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27324 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027325 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27326 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27327 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27328 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027329 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27330
27331 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27332 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27333 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27334 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27335 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27336 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27337 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27338 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27339 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27340 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27341 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27342 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27343 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27344 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27345 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27346 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027347 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27348 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27349 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27350 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027351 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27352 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27353 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27354 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027355 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27356
Derek Chenfdcc0982018-10-02 15:14:03 -070027357 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27358 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27359
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027360 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27361 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27362 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27363 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27364 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27365 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27366 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27367 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27368 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27369 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27370 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27371 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27372 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27373 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27374 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27375 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027376 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27377 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27378 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27379 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027380 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27381 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27382 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27383 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027384 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27385
27386 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27387 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27388 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27389 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27390 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27391 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27392 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27393 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27394 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27395 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27396 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27397 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27398 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27399 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27400 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27401 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027402 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27403 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27404 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27405 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027406 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27407 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27408 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27409 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027410 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27411
27412 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27413 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27414 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27415 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27416 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27417 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27418 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27419 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27420 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27421 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27422 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27423 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27424 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27425 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27426 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27427 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027428 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27429 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27430 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27431 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027432 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27433 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27434 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27435 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027436 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27437
27438 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27439 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27440 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27441 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27442 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27443 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27444 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27445 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27446 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27447 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27448 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27449 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27450 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27451 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27452 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27453 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027454 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27455 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27456 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27457 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027458 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27459 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27460 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27461 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027462 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27463
27464 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27465 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27466 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27467 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27468 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27469 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27470 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27471 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27472 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27473 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27474 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27475 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27476 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27477 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27478 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27479 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027480 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27481 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27482 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27483 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027484 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27485 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27486 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27487 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027488 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27489
27490 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27491 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27492 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27493 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27494 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27495 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27496 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27497 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27498 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27499 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27500 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27501 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27502 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27503 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27504 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27505 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027506 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27507 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27508 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27509 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027510 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27511 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27512 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27513 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027514 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27515
27516 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27517 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27518 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27519 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27520 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27521 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27522 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27523 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27524 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27525 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27526 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27527 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27528 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27529 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27530 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27531 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027532 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27533 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27534 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27535 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027536 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27537 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27538 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27539 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027540 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27541
27542 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27543 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27544 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27545 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27546 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27547 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27548 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27549 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27550 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27551 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27552 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27553 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27554 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27555 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27556 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27557 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027558 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27559 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27560 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27561 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027562 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27563 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27564 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27565 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027566 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27567
Derek Chenb9048cb2019-03-07 14:54:13 -050027568 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027569 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027570 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27571
Rohit Kumara5077932017-09-10 22:05:05 +053027572 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27573 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27574 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27575 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27576 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27577 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27578 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27579 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27580 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27581 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27582 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27583 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27584 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27585 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27586 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27587 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27588 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27589 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27590 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27591 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027592 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27593 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27594 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27595 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027596 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027597
27598 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27599 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27600 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27601 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27602 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27603 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27604 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27605 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27606 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27607 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27608 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27609 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27610 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27611 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27612 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27613 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27614 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27615 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27616 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27617 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027618 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27619 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27620 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27621 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027622 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027623
27624 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27625 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27626 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27627 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27628 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27629 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27630 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27631 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27632 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27633 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27634 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27635 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27636 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27637 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27638 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27639 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27640 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27641 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27642 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27643 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027644 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27645 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27646 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27647 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027648 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027649
27650 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27651 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27652 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27653 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27654 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27655 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27656 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27657 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27658 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27659 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27660 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27661 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27662 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27663 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27664 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27665 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27666 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27667 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27668 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27669 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027670 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27671 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27672 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27673 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027674 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027675
27676 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27677 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080027678 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
27679 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027680
Karthikeyan Manic3700752019-03-11 18:33:53 -070027681 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27682 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27683 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27684 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27685 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27686 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27687 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27688 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27689 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27690 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27691 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27692 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27693 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27694 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27695 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27696 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27697 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27698 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27699 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27700 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27701 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
27702
27703 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27704 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27705 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27706 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27707 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27708 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27709 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27710 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27711 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27712 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27713 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27714 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27715 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27716 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27717 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27718 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27719 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27720 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27721 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27722 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27723 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
27724
27725 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27726 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27727 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27728 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27729 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27730 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27731 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27732 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27733 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27734 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27735 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27736 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27737 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27738 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27739 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27740 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27741 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27742 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27743 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27744 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27745 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
27746
27747 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27748 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27749 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27750 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27751 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27752 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27753 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27754 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27755 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27756 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27757 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27758 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27759 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27760 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27761 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27762 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27763 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27764 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27765 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27766 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27767 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
27768
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027769 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27770 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27771 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27772 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027773 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027774 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027775 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27776 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27777 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27778 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027779 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027780 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27781 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
27782
27783 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27784 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27785 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27786 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027787 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027788 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027789 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27790 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27791 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027792 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027793 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27794 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27795 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
27796
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027797 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27798 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080027799 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027800 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027801 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
27802
27803 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
27804 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027805 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027806 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027807
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027808 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27809 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27810 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27811 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27812 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027813 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027814 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27815 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27816 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27817 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027818 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027819 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027820 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27821 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27822 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27823 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27824 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027825 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027826 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027827 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27828 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
27829 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27830 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27831 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
27832 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
27833 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
27834 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
27835 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
27836 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
27837
27838
27839 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27840 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27841 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27842 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27843 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053027844 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027845 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027846 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
27847
27848 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27849 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27850 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027851 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027852 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
27853
27854 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27855 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27856 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27857 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
27858
27859 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27860 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
27861 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27862 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
27863
Rohit Kumara5077932017-09-10 22:05:05 +053027864 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27865 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
27866 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27867 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
27868
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027869 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27870 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27871 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27872 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27873 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27874 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27875 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27876 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027877 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027878 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027879 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
27880 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27881 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27882 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27883 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27884 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27885 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27886 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27887 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27888 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27889 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
27890
27891 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27892 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27893 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27894 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27895 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27896 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27897 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27898 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27899 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27900 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27901 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27902 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
27903
27904 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27905 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27906 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27907 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27908 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27909 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27910 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27911 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27912 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27913 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27914 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027915 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027916 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
27917
kunleizdf5a00a2017-11-27 15:27:36 +080027918 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27919 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027920 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027921
27922 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27923 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027924 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027925
27926 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27927 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027928 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27929
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027930 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27931 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027932 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27933 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27934 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27935 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27936
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027937 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27938 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027939 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27940 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27941 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27942 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
27943
27944 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27945 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27946 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27947 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
27948 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27949 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27950 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
27951 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
27952 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27953 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
27954 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
27955 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
27956 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
27957
27958 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27959 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27960 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27961 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27962 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027963 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027964 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27965 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27966 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27967 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27968 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27969 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27970 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27971 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
27972
27973 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27974 {"HDMI", NULL, "HDMI_RX Port Mixer"},
27975
27976 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27977 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
27978
Karthikeyan Mani57550082018-05-03 18:43:58 -070027979 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
27980 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
27981
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027982 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27983 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
27984
27985 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27986 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27987 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
27988
27989 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27990 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27991 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27992 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027993 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027994 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027995 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27996 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27997 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27998 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027999 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028000 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28001
28002 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28003 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28004 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28005 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028006 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028007 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028008 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28009 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28010 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028011 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028012 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28013
28014 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28015 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28016 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28017 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028018 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028019 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028020 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28021 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28022 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28023
28024 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28025 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28026 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28027 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028028 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028029 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028030 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28031 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28032 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28033 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28034 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28035
Rohit Kumara5077932017-09-10 22:05:05 +053028036 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28037 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28038 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28039 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28040 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028041 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028042 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28043 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28044 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28045
Karthikeyan Manic3700752019-03-11 18:33:53 -070028046 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28047 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28048 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28049 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28050 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28051 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28052 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28053 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028055 /* Backend Enablement */
28056
28057 {"BE_OUT", NULL, "PRI_I2S_RX"},
28058 {"BE_OUT", NULL, "SEC_I2S_RX"},
28059 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28060 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28061 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28062 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28063 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28064 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28065 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28066 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28067 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028068 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028069 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28070 {"BE_OUT", NULL, "HDMI"},
28071 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028072 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028073 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28074 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028075 {"BE_OUT", NULL, "MI2S_RX"},
28076 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28077 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028078 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028079 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28080 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28081 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28082 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28083 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28084 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028085 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28086 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28087 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028088 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28089 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28090 {"BE_OUT", NULL, "INT_FM_RX"},
28091 {"BE_OUT", NULL, "PCM_RX"},
28092 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28093 {"BE_OUT", NULL, "AUX_PCM_RX"},
28094 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28095 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28096 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028097 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028098 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028099 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28100 {"BE_OUT", NULL, "INT_FM_RX"},
28101 {"BE_OUT", NULL, "PCM_RX"},
28102 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28103 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28104 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28105 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28106 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28107 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28108 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28109 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28110 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28111 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28112 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028113 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028114 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28115 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28116 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28117 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28118 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28119 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28120 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28121 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28122 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028123 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028124 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28125 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28126 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28127 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028128 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028129 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28130 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28131 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28132 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028133 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28134 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028135 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28136 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28137 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28138 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28139 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28140 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28141 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28142 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028143
28144 {"PRI_I2S_TX", NULL, "BE_IN"},
28145 {"MI2S_TX", NULL, "BE_IN"},
28146 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28147 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28148 {"PRI_MI2S_TX", NULL, "BE_IN"},
28149 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028150 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028151 {"INT2_MI2S_TX", NULL, "BE_IN"},
28152 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028153 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028154 {"INT5_MI2S_TX", NULL, "BE_IN"},
28155 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028156 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028157 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28158 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28159 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28160 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28161 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28162 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28163 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28164 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028165 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028166 {"USB_AUDIO_TX", NULL, "BE_IN" },
28167 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28168 {"INT_FM_TX", NULL, "BE_IN"},
28169 {"PCM_TX", NULL, "BE_IN"},
28170 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28171 {"BE_OUT", NULL, "STUB_RX"},
28172 {"STUB_TX", NULL, "BE_IN"},
28173 {"STUB_1_TX", NULL, "BE_IN"},
28174 {"BE_OUT", NULL, "AUX_PCM_RX"},
28175 {"AUX_PCM_TX", NULL, "BE_IN"},
28176 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28177 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28178 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028179 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028180 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028181 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28182 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28183 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28184 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028185 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28186 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028187 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28188 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28189 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28190 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28191 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028192 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28193 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028194 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28195 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28196 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28197 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28198 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28199 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28200 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28201 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28202 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28203 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28204 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28205 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28206 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28207 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28208 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028209 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028210 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28211 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28212 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28213 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028214 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028215 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028216 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28217 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28218 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28219 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028220 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028221 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28222 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28223 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28224 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028225 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28226 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28227 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28228 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28229 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028230 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028231 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28232 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28233 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28234 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28235 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28236 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028237 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28238 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028239};
28240
28241static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28242 struct snd_pcm_hw_params *params)
28243{
28244 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28245 unsigned int be_id = rtd->dai_link->id;
28246
28247 if (be_id >= MSM_BACKEND_DAI_MAX) {
28248 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28249 return -EINVAL;
28250 }
28251
28252 mutex_lock(&routing_lock);
28253 msm_bedais[be_id].sample_rate = params_rate(params);
28254 msm_bedais[be_id].channel = params_channels(params);
28255 msm_bedais[be_id].format = params_format(params);
28256 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28257 __func__, msm_bedais[be_id].sample_rate,
28258 msm_bedais[be_id].format, be_id);
28259 mutex_unlock(&routing_lock);
28260 return 0;
28261}
28262
28263static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28264{
28265 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28266 unsigned int be_id = rtd->dai_link->id;
28267 int i, session_type, path_type, topology;
28268 struct msm_pcm_routing_bdai_data *bedai;
28269 struct msm_pcm_routing_fdai_data *fdai;
28270
28271 pr_debug("%s: substream->pcm->id:%s\n",
28272 __func__, substream->pcm->id);
28273
28274 if (be_id >= MSM_BACKEND_DAI_MAX) {
28275 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28276 return -EINVAL;
28277 }
28278
28279 bedai = &msm_bedais[be_id];
28280 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28281 0 : 1);
28282 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28283 path_type = ADM_PATH_PLAYBACK;
28284 else
28285 path_type = ADM_PATH_LIVE_REC;
28286
28287 mutex_lock(&routing_lock);
28288 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28289 if (!is_mm_lsm_fe_id(i))
28290 continue;
28291 fdai = &fe_dai_map[i][session_type];
28292 if (fdai->strm_id != INVALID_SESSION) {
28293 int idx;
28294 int port_id;
28295 unsigned long copp =
28296 session_copp_map[i][session_type][be_id];
28297 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28298 if (test_bit(idx, &copp))
28299 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028300
28301 if (idx >= MAX_COPPS_PER_PORT) {
28302 pr_debug("%s: copp idx is invalid, exiting\n",
28303 __func__);
28304 continue;
28305 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028306 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028307 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028308 topology = adm_get_topology_for_port_copp_idx(port_id,
28309 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028310 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028311 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028312 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28313 __func__, copp, i, session_type, be_id,
28314 topology);
28315 clear_bit(idx,
28316 &session_copp_map[i][session_type][be_id]);
28317 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028318 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028319 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028320 topology);
28321 }
28322 }
28323
28324 bedai->active = 0;
28325 bedai->sample_rate = 0;
28326 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028327 mutex_unlock(&routing_lock);
28328
28329 return 0;
28330}
28331
28332static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28333{
28334 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28335 unsigned int be_id = rtd->dai_link->id;
28336 int i, path_type, topology;
28337 int session_type = INVALID_SESSION;
28338 struct msm_pcm_routing_bdai_data *bedai;
28339 u32 channels, sample_rate;
28340 uint16_t bits_per_sample = 16, voc_path_type;
28341 struct msm_pcm_routing_fdai_data *fdai;
28342 u32 session_id;
28343 struct media_format_info voc_be_media_format;
28344 bool is_lsm;
28345
28346 pr_debug("%s: substream->pcm->id:%s\n",
28347 __func__, substream->pcm->id);
28348
28349 if (be_id >= MSM_BACKEND_DAI_MAX) {
28350 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28351 return -EINVAL;
28352 }
28353
28354 bedai = &msm_bedais[be_id];
28355
28356 mutex_lock(&routing_lock);
28357 if (bedai->active == 1)
28358 goto done; /* Ignore prepare if back-end already active */
28359
28360 /* AFE port is not active at this point. However, still
28361 * go ahead setting active flag under the notion that
28362 * QDSP6 is able to handle ADM starting before AFE port
28363 * is started.
28364 */
28365 bedai->active = 1;
28366
28367 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28368 if (!(is_mm_lsm_fe_id(i) &&
28369 route_check_fe_id_adm_support(i)))
28370 continue;
28371
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028372 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28373 SESSION_TYPE_RX : SESSION_TYPE_TX;
28374 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028375 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028376 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028377 path_type = ADM_PATH_COMPRESSED_RX;
28378 else
28379 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028380 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028381 if ((fdai->passthr_mode != LEGACY_PCM) &&
28382 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028383 path_type = ADM_PATH_COMPRESSED_TX;
28384 else
28385 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028386 }
28387
28388 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28389 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028390 if (fdai->strm_id != INVALID_SESSION) {
28391 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028392 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028393
28394 if (session_type == SESSION_TYPE_TX &&
28395 fdai->be_srate &&
28396 (fdai->be_srate != bedai->sample_rate)) {
28397 pr_debug("%s: flush strm %d diff BE rates\n",
28398 __func__,
28399 fdai->strm_id);
28400
28401 if (fdai->event_info.event_func)
28402 fdai->event_info.event_func(
28403 MSM_PCM_RT_EVT_BUF_RECFG,
28404 fdai->event_info.priv_data);
28405 fdai->be_srate = 0; /* might not need it */
28406 }
28407 bits_per_sample = msm_routing_get_bit_width(
28408 bedai->format);
28409
28410 app_type =
28411 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28412 if (app_type && is_lsm) {
28413 app_type_idx =
28414 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28415 sample_rate =
28416 fe_dai_app_type_cfg[i][session_type][be_id]
28417 .sample_rate;
28418 bits_per_sample =
28419 lsm_app_type_cfg[app_type_idx].bit_width;
28420 } else if (app_type) {
28421 app_type_idx =
28422 msm_pcm_routing_get_app_type_idx(app_type);
28423 sample_rate =
28424 fe_dai_app_type_cfg[i][session_type]
28425 [be_id].sample_rate;
28426 bits_per_sample =
28427 app_type_cfg[app_type_idx].bit_width;
28428 } else
28429 sample_rate = bedai->sample_rate;
28430 /*
28431 * check if ADM needs to be configured with different
28432 * channel mapping than backend
28433 */
28434 if (!bedai->adm_override_ch)
28435 channels = bedai->channel;
28436 else
28437 channels = bedai->adm_override_ch;
28438 acdb_dev_id =
28439 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28440 topology = msm_routing_get_adm_topology(i, session_type,
28441 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028442
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028443 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28444 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28445 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028446 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28447
Surendar Karkae7507512018-07-20 15:46:54 +053028448 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028449 sample_rate, channels, topology,
28450 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028451 app_type, acdb_dev_id,
28452 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028453 if ((copp_idx < 0) ||
28454 (copp_idx >= MAX_COPPS_PER_PORT)) {
28455 pr_err("%s: adm open failed\n", __func__);
28456 mutex_unlock(&routing_lock);
28457 return -EINVAL;
28458 }
28459 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28460 __func__, i, session_type, be_id);
28461 set_bit(copp_idx,
28462 &session_copp_map[i][session_type][be_id]);
28463
28464 if (msm_is_resample_needed(
28465 sample_rate,
28466 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028467 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028468 bedai->sample_rate);
28469
28470 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028471 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028472 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028473 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028474 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028475 topology, channels);
28476 }
28477 }
28478
28479 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28480 session_id = msm_pcm_routing_get_voc_sessionid(i);
28481 if (session_id) {
28482 pr_debug("%s voice session_id: 0x%x\n", __func__,
28483 session_id);
28484
28485 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28486 voc_path_type = RX_PATH;
28487 else
28488 voc_path_type = TX_PATH;
28489
28490 voc_set_route_flag(session_id, voc_path_type, 1);
28491
28492 memset(&voc_be_media_format, 0,
28493 sizeof(struct media_format_info));
28494
28495 voc_be_media_format.port_id = bedai->port_id;
28496 voc_be_media_format.num_channels = bedai->channel;
28497 voc_be_media_format.sample_rate = bedai->sample_rate;
28498 voc_be_media_format.bits_per_sample = bedai->format;
28499 /* Defaulting this to 1 for voice call usecases */
28500 voc_be_media_format.channel_mapping[0] = 1;
28501
28502 voc_set_device_config(session_id, voc_path_type,
28503 &voc_be_media_format);
28504
28505 if (voc_get_route_flag(session_id, RX_PATH) &&
28506 voc_get_route_flag(session_id, TX_PATH))
28507 voc_enable_device(session_id);
28508 }
28509 }
28510
28511 /* Check if backend is an external ec ref port and set as needed */
28512 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28513
28514 memset(&voc_be_media_format, 0,
28515 sizeof(struct media_format_info));
28516
28517 /* Get format info for ec ref port from msm_bedais[] */
28518 voc_be_media_format.port_id = bedai->port_id;
28519 voc_be_media_format.num_channels = bedai->channel;
28520 voc_be_media_format.bits_per_sample = bedai->format;
28521 voc_be_media_format.sample_rate = bedai->sample_rate;
28522 /* Defaulting this to 1 for voice call usecases */
28523 voc_be_media_format.channel_mapping[0] = 1;
28524 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28525 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28526 __func__, voc_be_media_format.port_id,
28527 voc_be_media_format.num_channels,
28528 voc_be_media_format.bits_per_sample,
28529 voc_be_media_format.sample_rate);
28530 }
28531
28532done:
28533 mutex_unlock(&routing_lock);
28534
28535 return 0;
28536}
28537
28538static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28539 int fe_id)
28540{
28541 int index, topo_id, be_idx;
28542 unsigned long pp_config = 0;
28543 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028544 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028545 bool compr_passthr_mode = true;
28546
28547 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28548
28549 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28550 pr_err("%s: Device pp params on invalid port %d\n",
28551 __func__, port_id);
28552 return -EINVAL;
28553 }
28554
28555 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28556 if (port_id == msm_bedais[be_idx].port_id)
28557 break;
28558 }
28559
28560 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28561 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28562 return -EINVAL;
28563 }
28564
28565 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28566 if (msm_bedais_pp_params[index].port_id == port_id)
28567 break;
28568 }
28569 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28570 pr_err("%s: Invalid backend pp params index %d\n",
28571 __func__, index);
28572 return -EINVAL;
28573 }
28574
28575 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28576 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28577 pr_err("%s: Invalid passthrough topology 0x%x\n",
28578 __func__, topo_id);
28579 return -EINVAL;
28580 }
28581
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028582 session_type =
28583 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28584 SESSION_TYPE_RX : SESSION_TYPE_TX;
28585
28586 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28587 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028588 compr_passthr_mode = false;
28589
28590 pp_config = msm_bedais_pp_params[index].pp_params_config;
28591 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28592 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28593 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28594 mute_on = msm_bedais_pp_params[index].mute_on;
28595 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28596 adm_send_compressed_device_mute(port_id,
28597 copp_idx,
28598 mute_on);
28599 }
28600 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28601 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28602 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28603 &pp_config);
28604 latency = msm_bedais_pp_params[index].latency;
28605 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28606 adm_send_compressed_device_latency(port_id,
28607 copp_idx,
28608 latency);
28609 }
28610 return 0;
28611}
28612
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028613static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28614{
28615 uint32_t topology = NULL_COPP_TOPOLOGY;
28616 void *cal_info = NULL;
28617 uint32_t size = 0;
28618
28619 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028620 if (data_size < sizeof(struct audio_cal_type_basic) +
28621 sizeof(struct audio_cal_info_adm_top)) {
28622 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28623 goto done;
28624 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028625 size = data_size - sizeof(struct audio_cal_type_basic);
28626 cal_info = kzalloc(size, GFP_KERNEL);
28627
28628 if (!cal_info)
28629 goto done;
28630
28631 memcpy(cal_info,
28632 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28633
28634 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28635 kfree(cal_info);
28636 cal_info = NULL;
28637
28638done:
28639 pr_debug("%s: Using topology %d\n", __func__, topology);
28640
28641 return topology;
28642}
28643
28644static void msm_routing_load_topology(size_t data_size, void *data)
28645{
28646 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028647 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028648
28649 topology_id = msm_routing_get_topology(data_size, data);
28650 if (topology_id != NULL_COPP_TOPOLOGY)
28651 ret = q6core_load_unload_topo_modules(topology_id,
28652 CORE_LOAD_TOPOLOGY);
28653 if (ret < 0)
28654 pr_debug("%s %d load topology failed\n",
28655 __func__, topology_id);
28656
28657}
28658
28659static void msm_routing_unload_topology(uint32_t topology_id)
28660{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028661 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028662
28663 if (topology_id != NULL_COPP_TOPOLOGY)
28664 ret = q6core_load_unload_topo_modules(topology_id,
28665 CORE_UNLOAD_TOPOLOGY);
28666 if (ret < 0)
28667 pr_debug("%s %d unload topology failed\n",
28668 __func__, topology_id);
28669
28670}
28671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028672static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28673 struct snd_ctl_elem_value *ucontrol)
28674{
28675 int pp_id = ucontrol->value.integer.value[0];
28676 int port_id = 0;
28677 int index, be_idx, i, topo_id, idx;
28678 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028679 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028680 bool compr_passthr_mode = true;
28681
28682 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
28683
28684 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28685 port_id = msm_bedais[be_idx].port_id;
28686 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
28687 break;
28688 }
28689
28690 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28691 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28692 return -EINVAL;
28693 }
28694
28695 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28696 if (msm_bedais_pp_params[index].port_id == port_id)
28697 break;
28698 }
28699 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28700 pr_err("%s: Invalid pp params backend index %d\n",
28701 __func__, index);
28702 return -EINVAL;
28703 }
28704
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028705 session_type =
28706 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28707 SESSION_TYPE_RX : SESSION_TYPE_TX;
28708
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028709 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
28710 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028711 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
28712 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028713 compr_passthr_mode = false;
28714
28715 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28716 unsigned long copp =
28717 session_copp_map[i]
28718 [SESSION_TYPE_RX][be_idx];
28719 if (!test_bit(idx, &copp))
28720 continue;
28721 topo_id = adm_get_topology_for_port_copp_idx(port_id,
28722 idx);
28723 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
28724 continue;
28725 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
28726 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028727 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028728 switch (pp_id) {
28729 case ADM_PP_PARAM_MUTE_ID:
28730 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28731 mute = ucontrol->value.integer.value[1] ? true : false;
28732 msm_bedais_pp_params[index].mute_on = mute;
28733 set_bit(ADM_PP_PARAM_MUTE_BIT,
28734 &msm_bedais_pp_params[index].pp_params_config);
28735 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28736 adm_send_compressed_device_mute(port_id,
28737 idx, mute);
28738 break;
28739 case ADM_PP_PARAM_LATENCY_ID:
28740 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28741 msm_bedais_pp_params[index].latency =
28742 ucontrol->value.integer.value[1];
28743 set_bit(ADM_PP_PARAM_LATENCY_BIT,
28744 &msm_bedais_pp_params[index].pp_params_config);
28745 latency = msm_bedais_pp_params[index].latency =
28746 ucontrol->value.integer.value[1];
28747 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28748 adm_send_compressed_device_latency(port_id,
28749 idx, latency);
28750 break;
28751 default:
28752 pr_info("%s, device pp param %d not supported\n",
28753 __func__, pp_id);
28754 break;
28755 }
28756 }
28757 }
28758 return 0;
28759}
28760
28761static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28762 struct snd_ctl_elem_value *ucontrol)
28763{
28764 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
28765 return 0;
28766}
28767
28768static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
28769 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
28770 0, 3, msm_routing_get_device_pp_params_mixer,
28771 msm_routing_put_device_pp_params_mixer),
28772};
28773
28774static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
28775 struct snd_ctl_elem_value *ucontrol)
28776{
28777 ucontrol->value.integer.value[0] =
28778 core_get_license_status(ASM_MEDIA_FMT_APTX);
28779 pr_debug("%s: status %ld\n", __func__,
28780 ucontrol->value.integer.value[0]);
28781 return 0;
28782}
28783
28784static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
28785 struct snd_ctl_elem_value *ucontrol)
28786{
28787 int32_t status = 0;
28788
28789 status = core_set_license(ucontrol->value.integer.value[0],
28790 APTX_CLASSIC_DEC_LICENSE_ID);
28791 pr_debug("%s: status %d\n", __func__, status);
28792 return status;
28793}
28794
28795static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
28796 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
28797 0xFFFF, 0, msm_aptx_dec_license_control_get,
28798 msm_aptx_dec_license_control_put),
28799};
28800
Rohit kumar63ffaa72019-02-01 18:05:33 +053028801static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
28802 struct snd_ctl_elem_value *ucontrol)
28803{
28804 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
28805 uint32_t be_idx = ucontrol->value.integer.value[0];
28806 int i;
28807
28808 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
28809 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
28810 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
28811 pr_err("%s: Invalid channel map %d\n",
28812 __func__, channel_map[i]);
28813 return -EINVAL;
28814 }
28815 }
28816 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
28817
28818 return 0;
28819}
28820
28821static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
28822 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
28823 MSM_BACKEND_DAI_MAX, 0,
28824 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
28825 msm_routing_put_port_chmap_mixer),
28826};
28827
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028828static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
28829 struct snd_ctl_elem_info *uinfo)
28830{
28831 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
28832 uinfo->count = sizeof(be_dai_name_table);
28833 return 0;
28834}
28835
28836static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
28837 unsigned int __user *bytes,
28838 unsigned int size)
28839{
28840 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028841 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028842
28843 if (size < sizeof(be_dai_name_table)) {
28844 pr_err("%s: invalid size %d requested, returning\n",
28845 __func__, size);
28846 ret = -EINVAL;
28847 goto done;
28848 }
28849
28850 /*
28851 * Fill be_dai_name_table from msm_bedais table to reduce code changes
28852 * needed when adding new backends
28853 */
28854 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28855 be_dai_name_table[i].be_id = i;
28856 strlcpy(be_dai_name_table[i].be_name,
28857 msm_bedais[i].name,
28858 LPASS_BE_NAME_MAX_LENGTH);
28859 }
28860
28861 ret = copy_to_user(bytes, &be_dai_name_table,
28862 sizeof(be_dai_name_table));
28863 if (ret) {
28864 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
28865 ret = -EFAULT;
28866 }
28867
28868done:
28869 return ret;
28870}
28871
28872static const struct snd_kcontrol_new
28873 msm_routing_be_dai_name_table_mixer_controls[] = {
28874 {
28875 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
28876 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
28877 .info = msm_routing_be_dai_name_table_info,
28878 .name = "Backend DAI Name Table",
28879 .tlv.c = snd_soc_bytes_tlv_callback,
28880 .private_value = (unsigned long) &(struct soc_bytes_ext) {
28881 .max = sizeof(be_dai_name_table),
28882 .get = msm_routing_be_dai_name_table_tlv_get,
28883 }
28884 },
28885};
28886
28887static int msm_routing_stereo_channel_reverse_control_get(
28888 struct snd_kcontrol *kcontrol,
28889 struct snd_ctl_elem_value *ucontrol)
28890{
28891 ucontrol->value.integer.value[0] = swap_ch;
28892 pr_debug("%s: Swap channel value: %ld\n", __func__,
28893 ucontrol->value.integer.value[0]);
28894 return 0;
28895}
28896
28897static int msm_routing_stereo_channel_reverse_control_put(
28898 struct snd_kcontrol *kcontrol,
28899 struct snd_ctl_elem_value *ucontrol)
28900{
28901 int i, idx, be_index, port_id;
28902 int ret = 0;
28903 unsigned long copp;
28904
28905 pr_debug("%s Swap channel value:%ld\n", __func__,
28906 ucontrol->value.integer.value[0]);
28907
28908 swap_ch = ucontrol->value.integer.value[0];
28909
28910 mutex_lock(&routing_lock);
28911 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
28912 port_id = msm_bedais[be_index].port_id;
28913 if (!msm_bedais[be_index].active)
28914 continue;
28915
28916 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
28917 MSM_FRONTEND_DAI_MM_SIZE) {
28918 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
28919 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28920 if (!test_bit(idx, &copp))
28921 continue;
28922
28923 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28924 __func__, port_id, idx);
28925 ret = adm_swap_speaker_channels(
28926 port_id, idx,
28927 msm_bedais[be_index].sample_rate,
28928 swap_ch);
28929 if (ret) {
28930 pr_err("%s:Swap_channel failed, err=%d\n",
28931 __func__, ret);
28932 goto done;
28933 }
28934 }
28935 }
28936 }
28937done:
28938 mutex_unlock(&routing_lock);
28939 return ret;
28940}
28941
28942static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
28943 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
28944 1, 0, msm_routing_stereo_channel_reverse_control_get,
28945 msm_routing_stereo_channel_reverse_control_put),
28946};
28947
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028948static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
28949 struct snd_ctl_elem_info *uinfo)
28950{
28951 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
28952 uinfo->count = 1;
28953 return 0;
28954}
28955
28956static int msm_routing_instance_id_support_put(
28957 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28958{
28959 bool supported = ucontrol->value.integer.value[0] ? true : false;
28960
28961 q6common_update_instance_id_support(supported);
28962 return 0;
28963}
28964
28965static int msm_routing_instance_id_support_get(
28966 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28967{
28968 bool supported = false;
28969
28970 supported = q6common_is_instance_id_supported();
28971 ucontrol->value.integer.value[0] = supported ? 1 : 0;
28972
28973 return 0;
28974}
28975
28976static const struct snd_kcontrol_new
28977 msm_routing_feature_support_mixer_controls[] = {
28978 {
28979 .access = SNDRV_CTL_ELEM_ACCESS_READ |
28980 SNDRV_CTL_ELEM_ACCESS_WRITE,
28981 .info = msm_routing_instance_id_support_info,
28982 .name = "Instance ID Support",
28983 .put = msm_routing_instance_id_support_put,
28984 .get = msm_routing_instance_id_support_get,
28985 },
28986};
28987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028988static const struct snd_pcm_ops msm_routing_pcm_ops = {
28989 .hw_params = msm_pcm_routing_hw_params,
28990 .close = msm_pcm_routing_close,
28991 .prepare = msm_pcm_routing_prepare,
28992};
28993
28994/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080028995static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028996{
Meng Wangee084a02018-09-04 16:11:58 +080028997 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028998 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080028999 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29000 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029001 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029002 ARRAY_SIZE(intercon));
29003
Meng Wangee084a02018-09-04 16:11:58 +080029004 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029005
Meng Wangee084a02018-09-04 16:11:58 +080029006 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029007 ARRAY_SIZE(lsm_controls));
29008
Meng Wangee084a02018-09-04 16:11:58 +080029009 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029010 ARRAY_SIZE(aanc_slim_0_rx_mux));
29011
Meng Wangee084a02018-09-04 16:11:58 +080029012 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029013 ARRAY_SIZE(aanc_noise_level));
29014
Meng Wangee084a02018-09-04 16:11:58 +080029015 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029016 ARRAY_SIZE(msm_voc_session_controls));
29017
Meng Wangee084a02018-09-04 16:11:58 +080029018 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029019 ARRAY_SIZE(app_type_cfg_controls));
29020
Meng Wangee084a02018-09-04 16:11:58 +080029021 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029022 ARRAY_SIZE(lsm_app_type_cfg_controls));
29023
Meng Wangee084a02018-09-04 16:11:58 +080029024 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029025 ARRAY_SIZE(module_cfg_controls));
29026
Meng Wangee084a02018-09-04 16:11:58 +080029027 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029028 stereo_to_custom_stereo_controls,
29029 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29030
Meng Wangee084a02018-09-04 16:11:58 +080029031 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029032 ARRAY_SIZE(ec_ref_param_controls));
29033
Meng Wangee084a02018-09-04 16:11:58 +080029034 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029035 ARRAY_SIZE(channel_mixer_controls));
29036
Meng Wangee084a02018-09-04 16:11:58 +080029037 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029038
Meng Wangee084a02018-09-04 16:11:58 +080029039 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029040
Meng Wangee084a02018-09-04 16:11:58 +080029041 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029042
Meng Wangee084a02018-09-04 16:11:58 +080029043 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029044 use_ds1_or_ds2_controls,
29045 ARRAY_SIZE(use_ds1_or_ds2_controls));
29046
Meng Wangee084a02018-09-04 16:11:58 +080029047 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029048 device_pp_params_mixer_controls,
29049 ARRAY_SIZE(device_pp_params_mixer_controls));
29050
Meng Wangee084a02018-09-04 16:11:58 +080029051 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029052 msm_routing_be_dai_name_table_mixer_controls,
29053 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29054
Meng Wangee084a02018-09-04 16:11:58 +080029055 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029056 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029057 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029058 ARRAY_SIZE(adm_channel_config_controls));
29059
Meng Wangee084a02018-09-04 16:11:58 +080029060 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029061 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029062 snd_soc_add_component_controls(component,
29063 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029064 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029065 snd_soc_add_component_controls(
29066 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029067 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029068 snd_soc_add_component_controls(component,
29069 port_multi_channel_map_mixer_controls,
29070 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029072 return 0;
29073}
29074
29075int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29076{
29077 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29078}
29079
29080void msm_routing_pcm_free(struct snd_pcm *pcm)
29081{
29082 msm_pcm_routing_hwdep_free(pcm);
29083}
29084
Meng Wangee084a02018-09-04 16:11:58 +080029085static struct snd_soc_component_driver msm_soc_routing_component = {
29086 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029087 .ops = &msm_routing_pcm_ops,
29088 .probe = msm_routing_probe,
29089 .pcm_new = msm_routing_pcm_new,
29090 .pcm_free = msm_routing_pcm_free,
29091};
29092
29093static int msm_routing_pcm_probe(struct platform_device *pdev)
29094{
29095
29096 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029097 return snd_soc_register_component(&pdev->dev,
29098 &msm_soc_routing_component,
29099 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029100}
29101
29102static int msm_routing_pcm_remove(struct platform_device *pdev)
29103{
Meng Wangee084a02018-09-04 16:11:58 +080029104 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029105 return 0;
29106}
29107
29108static const struct of_device_id msm_pcm_routing_dt_match[] = {
29109 {.compatible = "qcom,msm-pcm-routing"},
29110 {}
29111};
29112MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29113
29114static struct platform_driver msm_routing_pcm_driver = {
29115 .driver = {
29116 .name = "msm-pcm-routing",
29117 .owner = THIS_MODULE,
29118 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029119 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029120 },
29121 .probe = msm_routing_pcm_probe,
29122 .remove = msm_routing_pcm_remove,
29123};
29124
29125int msm_routing_check_backend_enabled(int fedai_id)
29126{
29127 int i;
29128
29129 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29130 /* bad ID assigned in machine driver */
29131 pr_err("%s: bad MM ID\n", __func__);
29132 return 0;
29133 }
29134 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29135 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29136 return msm_bedais[i].active;
29137 }
29138 return 0;
29139}
29140
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029141static int get_cal_type_index(int32_t cal_type)
29142{
29143 int ret = -EINVAL;
29144
29145 switch (cal_type) {
29146 case ADM_TOPOLOGY_CAL_TYPE:
29147 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29148 break;
29149 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29150 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29151 break;
29152 default:
29153 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29154 }
29155 return ret;
29156}
29157
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029158static int msm_routing_set_cal(int32_t cal_type,
29159 size_t data_size, void *data)
29160{
29161 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029162 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029163 pr_debug("%s\n", __func__);
29164
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029165 cal_index = get_cal_type_index(cal_type);
29166 if (cal_index < 0) {
29167 pr_err("%s: Could not get cal index %d\n",
29168 __func__, cal_index);
29169 ret = -EINVAL;
29170 goto done;
29171 }
29172
29173 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029174 if (ret < 0) {
29175 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29176 __func__, ret, cal_type);
29177 ret = -EINVAL;
29178 goto done;
29179 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029180 /* Pre-load if it is ADM topology */
29181 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29182 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29183 msm_routing_load_topology(data_size, data);
29184 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029185done:
29186 return ret;
29187}
29188
29189static void msm_routing_delete_cal_data(void)
29190{
29191 pr_debug("%s\n", __func__);
29192
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029193 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029194}
29195
29196static int msm_routing_init_cal_data(void)
29197{
29198 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029199 struct cal_type_info cal_type_info[] = {
29200 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029201 {NULL, NULL, NULL,
29202 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029203 {NULL, NULL, cal_utils_match_buf_num} },
29204
29205 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29206 {NULL, NULL, NULL,
29207 msm_routing_set_cal, NULL, NULL} },
29208 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029209 };
29210 pr_debug("%s\n", __func__);
29211
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029212 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29213 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029214 if (ret < 0) {
29215 pr_err("%s: could not create cal type!\n",
29216 __func__);
29217 ret = -EINVAL;
29218 goto err;
29219 }
29220
29221 return ret;
29222err:
29223 msm_routing_delete_cal_data();
29224 return ret;
29225}
29226
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029227int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029228{
29229 mutex_init(&routing_lock);
29230 if (msm_routing_init_cal_data())
29231 pr_err("%s: could not init cal data!\n", __func__);
29232
29233 afe_set_routing_callback(
29234 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29235
29236 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29237 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29238
29239 return platform_driver_register(&msm_routing_pcm_driver);
29240}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029241
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029242void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029243{
29244 msm_routing_delete_cal_data();
29245 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29246 mutex_destroy(&routing_lock);
29247 platform_driver_unregister(&msm_routing_pcm_driver);
29248}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029249
29250MODULE_DESCRIPTION("MSM routing platform driver");
29251MODULE_LICENSE("GPL v2");